Tüm Ürünler
Search
Belge Merkezi

ApsaraDB for MongoDB:mongo kabuğunu kullanarak veritabanı hesaplarını yönetin

Son Güncelleme:Oct 03, 2026

mongo kabuğu, MongoDB ile birlikte sunulan bir veritabanı yönetim aracıdır. ApsaraDB for MongoDB'de veritabanı hesapları oluşturmak ve sorgulamak için mongo kabuğunu kullanabilirsiniz.

Ön koşullar

  1. Bir ApsaraDB for MongoDB örneği oluşturulmuş olmalıdır. Farklı türde örneklerin nasıl oluşturulacağı hakkında daha fazla bilgi için aşağıdaki konulara bakın:

  2. mongo kabuğunu kullanarak ApsaraDB for MongoDB örneğine bağlanmış olmalısınız. Farklı türde örneklere nasıl bağlanılacağı hakkında daha fazla bilgi için aşağıdaki konulara bakın:

Dikkat edilmesi gerekenler

Veritabanı hesapları, bir veritabanı içinde benzersiz olmalıdır.

Veritabanı hesabı oluşturun

Not
  • mongo kabuğu kullanılarak oluşturulan veritabanı hesapları, ApsaraDB for MongoDB konsolundaki Accounts sayfasında görüntülenmez.

  • mongo kabuğunu kullanarak ilk kez bir veritabanı hesabı oluşturduğunuzda, admin veritabanındaki yerleşik root hesabının kimliğini doğrulamanız gerekir.

  1. admin veritabanına geçin.

    use admin
    Not

    Bu komutu değiştirmeden çalıştırabilirsiniz.

  2. root hesabının kimliğini doğrulayın.

    Sözdizimi:

    db.auth("root","password")

    Parametre açıklaması: password root hesabının şifresini belirtir.

    Örnek:

    db.auth("root","123456Aa")
  3. (İsteğe bağlı) Özel bir veritabanı rolü oluşturun.

    Belirli bir koleksiyona erişimi kısıtlamak için ayrıntılı erişim kontrolü sağlayan özel bir veritabanı rolü oluşturun.

    • Veritabanı değiştirme: Hedef veritabanına geçmek için use database_name komutunu çalıştırın; burada database_name hedef veritabanının adıdır.

    • Rol kapsamı: Bir rol yalnızca oluşturulduğu veritabanında kullanılabilir. Bir rol birden fazla veritabanı için geçerliyse, rolü admin veritabanında oluşturmanız gerekir.

    Sözdizimi:

    db.createRole({role: "role_name", privileges: [{resource: {db: "role_database_name", collection: "collection_name" }, actions: [ "actions" ] }],roles: []})

    Parametre açıklaması:


    Parameter


    Description


    Example


    role_name


    Yeni rolün adı.


    readRole


    role_database_name


    Rolün işlem izinlerine sahip olduğu veritabanı.


    testDB


    collection_name


    Koleksiyonun adı.


    testCollection


    actions


    İzin verilen işlem türleri; örneğin find, insert, update ve remove.


    find


    roles


    Bu rolün devraldığı diğer roller. Boş bir dizi, devralma olmadığını gösterir ancak roles alanı gereklidir.


    []

    Not

    Daha fazla bilgi için bkz. createRole.

    Örnek:

    testDB veritabanında readRole adında bir rol oluşturun ve bu role testCollection koleksiyonu üzerinde find izni verin.

    db.createRole({role: "readRole",privileges: [{resource: {db: "testDB", collection: "testCollection" }, actions: [ "find" ]}],roles: []})

    Başarılı bir yanıt aşağıdaki gibi görünür:

    {
      ok: 1,
      '$clusterTime': {
        clusterTime: Timestamp({ t: 1747119397, i: 1 }),
        signature: {
          hash: Binary(Buffer.from("fde8****", "hex"), 0),
          keyId: Long("7503****")
        }
      },
      operationTime: Timestamp({ t: 1747119397, i: 1 })
    }
  4. Bir veritabanı hesabı oluşturun.

    Yöntem 1: Hesap oluşturmak için hedef veritabanına geçin

    Bir veritabanı hesabı, oluşturulduğu veritabanına aittir.

    Bir veritabanına geçmek için use database_name komutunu çalıştırın; burada database_name hedef veritabanının adıdır.

    Sözdizimi:

    db.createUser({user: "user_name", pwd: "password", roles:[{role: "role_name", db: "role_database_name"}]})

    Parametre açıklaması:

    Parameter

    Description

    Example

    user_name

    Veritabanı hesabının adı.

    Hesap adı :/?#[]@ gibi özel karakterler içeriyorsa, bu karakterleri yüzde kodlamasıyla (percent-encoding) kodlamanız gerekir. Yüzde kodlamasının nasıl yapılacağı hakkında bilgi için bkz. Percent-Encoding.

    test

    password

    Veritabanı hesabının şifresi.

    123456Aa

    role_name

    Veritabanı hesabına atanacak rol.

    Geçerli değerler hakkında daha fazla bilgi için bkz. Veritabanı hesaplarının rolleri.

    readAnyDatabase

    role_database_name

    Rolün ait olduğu veritabanının adı.

    Örneğin, {role: "readAnyDatabase", db: "admin"} ifadesi hesaba admin veritabanının readAnyDatabase rolünü atar. Bu, tüm veritabanlarında salt okunur izinler sağlar.

    admin

    Örnek:

    admin veritabanında test adında bir veritabanı hesabı oluşturun, şifreyi 123456Aa olarak ayarlayın ve test hesabına readAnyDatabase rolünü atayın.

    db.createUser({user: "test", pwd: "123456Aa", roles:[{role: "readAnyDatabase", db: "admin"}]})

    Başarılı bir yanıt aşağıdaki gibi görünür:

    Successfully added user: {
            "user" : "test",
            "roles" : [
                    {
                            "role" : "readAnyDatabase",
                            "db" : "admin"
                    }
            ]
    }

    Yöntem 2: Veritabanı değiştirmeden hesap oluşturun

    Veritabanı değiştirmeden bir veritabanı hesabı oluşturmak için aşağıdaki yöntemlerden birini kullanabilirsiniz.

    db.getMongo()

    Sözdizimi:

    db.getMongo().getDB("database_name").createUser({user: "user_name", pwd: "password", roles: [{role: "role_name", db: "role_database_name"}]})

    Parametre açıklaması:


    Parameter


    Description


    Example


    database_name


    Hesabın ait olduğu veritabanının adı.


    admin


    user_name

    Veritabanı hesabının adı.

    Hesap adı :/?#[]@ gibi özel karakterler içeriyorsa, bu karakterleri yüzde kodlamasıyla (percent-encoding) kodlamanız gerekir. Yüzde kodlamasının nasıl yapılacağı hakkında bilgi için bkz. Percent-Encoding.


    test


    password


    Veritabanı hesabının şifresi.


    123456Aa


    role_name

    Veritabanı hesabına atanacak rol.

    Geçerli değerler hakkında daha fazla bilgi için bkz. Veritabanı hesaplarının rolleri.


    readAnyDatabase


    role_database_name

    Rolün ait olduğu veritabanının adı.

    Örneğin, {role: "readAnyDatabase", db: "admin"} ifadesi hesaba admin veritabanının readAnyDatabase rolünü atar. Bu, tüm veritabanlarında salt okunur izinler sağlar.


    admin

    Örnek:

    admin veritabanına ait olan test adında bir veritabanı hesabı oluşturun, şifreyi 123456Aa olarak ayarlayın ve test hesabına readAnyDatabase rolünü atayın.

    db.getMongo().getDB("admin").createUser({user: "test", pwd: "123456Aa", roles: [{role: "readAnyDatabase", db: "admin"}]})

    Başarılı bir yanıt aşağıdaki gibi görünür:

    Successfully added user: {
            "user" : "test",
            "roles" : [
                    {
                            "role" : "readAnyDatabase",
                            "db" : "admin"
                    }
            ]
    }

    db.getSiblingDB()

    Sözdizimi:

    db.getSiblingDB("database_name").createUser({user: "user_name", pwd: "password", roles: [{role: "role_name", db: "role_database_name"}]})

    Parametre açıklaması:


    Parameter


    Description


    Example


    database_name


    Hesabın ait olduğu veritabanının adı.


    admin


    user_name

    Veritabanı hesabının adı.

    Hesap adı :/?#[]@ gibi özel karakterler içeriyorsa, bu karakterleri yüzde kodlamasıyla (percent-encoding) kodlamanız gerekir. Yüzde kodlamasının nasıl yapılacağı hakkında bilgi için bkz. Percent-Encoding.


    test


    password


    Veritabanı hesabının şifresi.


    123456Aa


    role_name

    Veritabanı hesabına atanacak rol.

    Geçerli değerler hakkında daha fazla bilgi için bkz. Veritabanı hesaplarının rolleri.


    readAnyDatabase


    role_database_name

    Rolün ait olduğu veritabanının adı.

    Örneğin, {role: "readAnyDatabase", db: "admin"} ifadesi hesaba admin veritabanının readAnyDatabase rolünü atar. Bu, tüm veritabanlarında salt okunur izinler sağlar.


    admin

    Örnek:

    admin veritabanına ait olan test adında bir veritabanı hesabı oluşturun, şifreyi 123456Aa olarak ayarlayın ve test hesabına readAnyDatabase rolünü atayın.

    db.getSiblingDB("admin").createUser({user: "test", pwd: "123456Aa", roles: [{role: "readAnyDatabase", db: "admin"}]})

    Başarılı bir yanıt aşağıdaki gibi görünür:

    Successfully added user: {
            "user" : "test",
            "roles" : [
                    {
                            "role" : "readAnyDatabase",
                            "db" : "admin"
                    }
            ]
    }

Veritabanı hesaplarını sorgulayın

Bir ApsaraDB for MongoDB örneğindeki tüm veritabanı hesaplarını sorgulayın

admin veritabanında aşağıdaki komutu çalıştırın:

db.getCollection("system.users").find()
Not

Bu komutu değiştirmeden çalıştırabilirsiniz.

Yanıt aşağıdaki gibi görünür:

{ "_id" : "admin.root", "userId" : UUID("b079b4c8-0e34-4e0d-90f9-75741414****"), "user" : "root", "db" : "admin", "credentials" : { "SCRAM-SHA-1" : { "iterationCount" : 10000, "salt" : "WeN7mJumlZKG2dvzLRDL*****", "storedKey" : "wfRUnCq55ajFwnYxf9MQJ0k****", "serverKey" : "tP70xGJ9PRZs01VSJF1YDrHg****" }, "SCRAM-SHA-256" : { "iterationCount" : 15000, "salt" : "5aIQ734c2Whg2pPwfg****/mpJulsd+33rE****", "storedKey" : "otMBwA2TTwoU****+dfwccnfPN14Dy5Oq6keYOl****", "serverKey" : "VCE****+aLkXGzCqRiaPfjnFG4WFiAOq0BKXxTo0****" } }, "roles" : [ { "role" : "root", "db" : "admin" } ] }
{ "_id" : "admin.test", "userId" : UUID("769ea9a1-6224-470e-8162-19a62fa2****"), "user" : "test", "db" : "admin", "credentials" : { "SCRAM-SHA-1" : { "iterationCount" : 10000, "salt" : "8fyXsIUgs6aQmafhTDrS****", "storedKey" : "fJQFoKsl7ll****/4vFU4xQn****", "serverKey" : "Tf1zygJ****/3/P3UMM47rr8****" }, "SCRAM-SHA-256" : { "iterationCount" : 15000, "salt" : "wcWRhs9VXEsmNWtd7ZD****+NbYXx8ugJ3p2****", "storedKey" : "A5GiH****/tf70hakRY3U3joho3GrtFWQ****/WX****", "serverKey" : "ryRAcj6zomYiHJqhA9ObvuYALc3ZZva8ImR7B89C****" } }, "roles" : [ { "role" : "readAnyDatabase", "db" : "admin" } ] }

Hedef veritabanındaki tüm veritabanı hesaplarını sorgulayın

Not

Veritabanı değiştirmek için use database_name komutunu çalıştırabilirsiniz; burada database_name hedef veritabanının adıdır.

  • Yöntem 1: Sorgu komutunu hedef veritabanında çalıştırın.

    show users
    Not

    Bu komutu değiştirmeden çalıştırabilirsiniz.

    Yanıt aşağıdaki gibi görünür:

    {
            "_id" : "admin.root",
            "userId" : UUID("b079b4c8-0e34-4e0d-90f9-75741414****"),
            "user" : "root",
            "db" : "admin",
            "roles" : [
                    {
                            "role" : "root",
                            "db" : "admin"
                    }
            ],
            "mechanisms" : [
                    "SCRAM-SHA-1",
                    "SCRAM-SHA-256"
            ]
    }
    {
            "_id" : "admin.test",
            "userId" : UUID("769ea9a1-6224-470e-8162-19a62fa2****"),
            "user" : "test",
            "db" : "admin",
            "roles" : [
                    {
                            "role" : "readAnyDatabase",
                            "db" : "admin"
                    }
            ],
            "mechanisms" : [
                    "SCRAM-SHA-1",
                    "SCRAM-SHA-256"
            ]
    }
  • Yöntem 2: Sorgu komutunu admin veritabanında çalıştırın.

    Sözdizimi:

    db.getCollection("system.users").find({db: "database_name"})

    Parametre açıklaması: database_name hedef veritabanının adını belirtir.

    Örnek:

    db.getCollection("system.users").find({db: "admin"})

    Yanıt aşağıdaki gibi görünür:

    { "_id" : "admin.root", "userId" : UUID("b079b4c8-0e34-4e0d-90f9-75741414****"), "user" : "root", "db" : "admin", "credentials" : { "SCRAM-SHA-1" : { "iterationCount" : 10000, "salt" : "WeN7mJumlZKG2dvzLRDL*****", "storedKey" : "wfRUnCq55ajFwnYxf9MQJ0k****", "serverKey" : "tP70xGJ9PRZs01VSJF1YDrHg****" }, "SCRAM-SHA-256" : { "iterationCount" : 15000, "salt" : "5aIQ734c2Whg2pPwfg****/mpJulsd+33rE****", "storedKey" : "otMBwA2TTwoU****+dfwccnfPN14Dy5Oq6keYOl****", "serverKey" : "VCE****+aLkXGzCqRiaPfjnFG4WFiAOq0BKXxTo0****" } }, "roles" : [ { "role" : "root", "db" : "admin" } ] }
    { "_id" : "admin.test", "userId" : UUID("769ea9a1-6224-470e-8162-19a62fa2****"), "user" : "test", "db" : "admin", "credentials" : { "SCRAM-SHA-1" : { "iterationCount" : 10000, "salt" : "8fyXsIUgs6aQmafhTDrS****", "storedKey" : "fJQFoKsl7ll****/4vFU4xQn****", "serverKey" : "Tf1zygJ****/3/P3UMM47rr8****" }, "SCRAM-SHA-256" : { "iterationCount" : 15000, "salt" : "wcWRhs9VXEsmNWtd7ZD****+NbYXx8ugJ3p2****", "storedKey" : "A5GiH****/tf70hakRY3U3joho3GrtFWQ****/WX****", "serverKey" : "ryRAcj6zomYiHJqhA9ObvuYALc3ZZva8ImR7B89C****" } }, "roles" : [ { "role" : "readAnyDatabase", "db" : "admin" } ] }

Hedef veritabanındaki tek bir veritabanı hesabını sorgulayın

Not

Tek bir veritabanı hesabını sorgulama komutu admin veritabanında çalıştırılmalıdır.

Sözdizimi:

db.getCollection("system.users").find({user: "user_name", db: "database_name"})

Parametre açıklaması:

  • user_name: Veritabanı hesabının adını belirtir.

  • database_name: Hesabın ait olduğu veritabanının adını belirtir.

Örnek:

db.getCollection("system.users").find({user: "test", db: "admin"})

Yanıt aşağıdaki gibi görünür:

{ "_id" : "admin.test", "userId" : UUID("769ea9a1-6224-470e-8162-19a62fa2****"), "user" : "test", "db" : "admin", "credentials" : { "SCRAM-SHA-1" : { "iterationCount" : 10000, "salt" : "8fyXsIUgs6aQmafhTDrS****", "storedKey" : "fJQFoKsl7llXdiU/4vFU4xQn****", "serverKey" : "Tf1zygJ****/3/P3UMM47rr8****" }, "SCRAM-SHA-256" : { "iterationCount" : 15000, "salt" : "wcWRhs9VXEsmNWtd7ZD****+NbYXx8ugJ3p2****", "storedKey" : "A5GiH****/tf70hakRY3U3joho3GrtFWQ****/WX****", "serverKey" : "ryRAcj6zomYiHJqhA9ObvuYALc3ZZva8ImR7B89C****" } }, "roles" : [ { "role" : "root", "db" : "admin" } ] }

Veritabanı hesaplarının rolleri

Database

Role

Description

Tüm veritabanları

readOnly

Veritabanında salt okunur izinler verir.

readWrite

Veritabanında okuma ve yazma izinleri verir.

userAdmin

Veritabanında hesaplar ve roller oluşturma izinleri verir.

dbAdmin

Veritabanındaki koleksiyonları yönetme izinleri verir.

dbOwner

readWrite, userAdmin ve dbAdmin'in tüm izinlerini içerir.

enableSharding

Parçalanmış küme örneğindeki bir veritabanının birden fazla parça arasında parçalanmasına olanak tanır.

admin veritabanı

readAnyDatabase

Tüm veritabanlarında salt okunur izinler verir.

readWriteAnyDatabase

Tüm veritabanlarında okuma ve yazma izinleri verir.

userAdminAnyDatabase

Tüm veritabanlarında hesaplar ve roller oluşturma izinleri verir.

dbAdminAnyDatabase

Tüm veritabanlarında koleksiyonları yönetme izinleri verir.

clusterMonitor

Bilgi toplama komutlarını çalıştırma izinleri verir.

hostManager

setParameter, killop, resync ve killCursors gibi komutları çalıştırma izinleri verir.

clusterManager

Düğüm yönetimi komutlarını çalıştırma izinleri verir.

clusterAdmin

clusterMonitor, hostManager ve clusterManager'in tüm izinlerini içerir.

root

readAnyDatabase, readWriteAnyDatabase, userAdminAnyDatabase ve dbAdminAnyDatabase gibi admin veritabanındaki tüm izinleri içerir.

Not

Roller hakkında daha fazla bilgi için bkz. Built-In Roles.

İlgili konular