Azure Cosmos DB for MongoDB vCore 支持具有专门读写和只读角色的次级本机 DocumentDB 用户。 此功能使辅助用户能够访问和修改数据,这样便可更轻松地委派职责,同时增强数据安全性。 如果允许精细访问控制,团队可以自信地向各种利益干系人(如开发人员和分析师)扩展数据访问,而不会损害系统完整性。
创建群集时,会自动添加内置的管理本机用户帐户。 此帐户具有完全权限,包括用户管理功能。 若要创建其他本机用户,必须使用此内置管理帐户登录。
如果群集具有 副本,则所有次级本机用户会自动复制到副本,并可以用来访问该副本。 应在主群集上执行所有本机用户管理操作。
在群集预配期间,在 Azure Cosmos DB for MonogDB vCore 群集上创建了一个具有所有权限的管理用户。 此管理用户可以对群集执行所有作,并且无法删除。
此外,Azure Cosmos DB for MongoDB vCore 支持具有只读或读写权限的辅助用户的基于角色的访问控制(RBAC)。 此功能允许管理员分配角色,这些角色授予辅助用户对基本读取作的访问权限,同时保护主要数据完整性。
在群集级别为该群集上的所有数据库创建和授予用户权限。 readWriteAnyDatabase 和 clusterAdmin 角色共同授予对群集的完整读写权限,包括数据库管理和数据库作的权限。 readAnyDatabase 角色用于授予对群集的只读权限。
备注
仅支持具有数据库管理和数据库操作权限的完整读写用户。 不能单独分配 readWriteAnyDatabase 和 clusterAdmin 角色。
可以使用任何 MongoDB 驱动程序或工具,例如 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
}
)