MongoDB 权限管理是确保数据库安全性的重要组成部分。通过合理设置权限,您可以控制用户对数据库的访问权限。以下是 MongoDB 权限管理的实用命令大全,涵盖了创建用户、修改权限、查看权限等操作。
创建用户
格式
use database_name
db.createRole(
{
role: "role_name",
privileges: [
{
resource: {
db: "database_name",
collection: "collection_name",
action: "action_string"
},
roles: ["role_name"]
}
],
roles: ["role_name"]
}
)
说明
database_name:指定用户所属的数据库名。role_name:新创建的角色的名称。privileges:指定角色的权限,包括对哪些数据库、集合以及可以进行哪些操作。roles:指定直接分配给该角色的其他角色。
例子
创建一个名为 readWriteUser 的用户,拥有对 mydb 数据库的读写权限。
use mydb
db.createRole(
{
role: "readWriteUser",
privileges: [
{
resource: { db: "mydb", collection: "", action: "readWrite" }
}
]
}
)
修改权限
格式
use database_name
db.updateUser(
"user_name",
{
roles: [
{
role: "role_name",
db: "database_name"
}
]
}
)
说明
user_name:要修改权限的用户名。roles:指定新的角色。
例子
修改 readWriteUser 用户,使其拥有对 mydb 数据库的完全控制权限。
use mydb
db.updateUser(
"readWriteUser",
{
roles: [
{
role: "readWrite",
db: "mydb"
}
]
}
)
删除用户
格式
use admin
db.dropUser("user_name")
说明
user_name:要删除的用户名。- 需要在
admin数据库中执行该命令。
例子
删除名为 readWriteUser 的用户。
use admin
db.dropUser("readWriteUser")
查看权限
格式
use admin
db.runCommand("users")
说明
- 在
admin数据库中运行该命令可以查看所有用户的权限信息。
例子
查看所有用户的权限信息。
use admin
db.runCommand("users")
权限类型
数据库级别
read:读取数据。readWrite:读取和写入数据。dbAdmin:执行数据库管理操作。userAdmin:管理用户。
集合级别
read:读取数据。readWrite:读取和写入数据。create:创建集合。delete:删除数据。update:更新数据。drop:删除集合。
通过以上命令,您可以轻松管理 MongoDB 的权限,确保数据库的安全性。在实际应用中,请根据具体需求合理设置权限,以保护您的数据。
