通过 Azure Cosmos DB for MongoDB vCore 上的辅助本机用户提供的读取和读写权限

Azure Cosmos DB for MongoDB vCore 支持具有专门读写和只读角色的次级本机 DocumentDB 用户。 此功能使辅助用户能够访问和修改数据,这样便可更轻松地委派职责,同时增强数据安全性。 如果允许精细访问控制,团队可以自信地向各种利益干系人(如开发人员和分析师)扩展数据访问,而不会损害系统完整性。

创建群集时,会自动添加内置的管理本机用户帐户。 此帐户具有完全权限,包括用户管理功能。 若要创建其他本机用户,必须使用此内置管理帐户登录。

如果群集具有 副本,则所有次级本机用户会自动复制到副本,并可以用来访问该副本。 应在主群集上执行所有本机用户管理操作。

先决条件

支持的命令和示例

在群集预配期间,在 Azure Cosmos DB for MonogDB vCore 群集上创建了一个具有所有权限的管理用户。 此管理用户可以对群集执行所有作,并且无法删除。

此外,Azure Cosmos DB for MongoDB vCore 支持具有只读或读写权限的辅助用户的基于角色的访问控制(RBAC)。 此功能允许管理员分配角色,这些角色授予辅助用户对基本读取作的访问权限,同时保护主要数据完整性。

在群集级别为该群集上的所有数据库创建和授予用户权限。 readWriteAnyDatabaseclusterAdmin 角色共同授予对群集的完整读写权限,包括数据库管理和数据库作的权限。 readAnyDatabase 角色用于授予对群集的只读权限。

备注

仅支持具有数据库管理和数据库操作权限的完整读写用户。 不能单独分配 readWriteAnyDatabaseclusterAdmin 角色。

可以使用任何 MongoDB 驱动程序或工具,例如 mongosh 执行这些作。

通过 Mongosh 进行身份验证和执行操作

使用在群集预配期间创建的内置管理帐户进行身份验证。 只有此内置管理帐户在群集上具有用户管理权限(userAdmin)。

mongosh "mongodb+srv://<UserName>:<Password>@<ClusterName>?tls=true&authMechanism=SCRAM-SHA-256&retrywrites=false&maxIdleTimeMS=120000"

提示

可以在 Azure 门户中的“连接字符串”页上获取群集的本地连接字符串。

创建用户

在运行命令的群集上创建新用户。 如果该用户已存在,该 createUser 命令将返回重复的用户错误。

数据管理员用户

db.runCommand(
    {
        createUser:"yourUserName",
        pwd : "yourPassword",
        roles : [
            { role:"clusterAdmin",db:"admin" },
            { role:"readWriteAnyDatabase", db:"admin" }
        ]
    }
)

只读权限用户

db.runCommand(
    {
        createUser:"yourUserName",
        pwd : "yourPassword",
        roles : [
            { role:"readAnyDatabase",db:"admin" }
        ]
    }
)

更新用户

在运行命令的数据库上更新用户。 updateUser 命令仅支持更新密码。

use admin
db.runCommand(
    {
        updateUser:"<username>",
        pwd : "<new cleartext password>"
    }
)

删除用户

从群集中删除用户。

use admin
db.runCommand(
    {
        dropUser:"<username>"
    }
)

列出用户

返回有关在群集上创建的本地用户的信息。 它还支持将单个用户传入 usersInfo。 在这种情况下,它会返回有关用户、其角色等的信息。

use admin
db.runCommand(
    {
        usersInfo:1
    }
)

后续步骤