在CentOS系统上管理MongoDB的权限涉及几个关键步骤,包括开启认证、创建用户、分配角色和验证权限。以下是详细的指南:
首先,需要在MongoDB的配置文件中启用认证。编辑 /etc/mongod.conf
文件,确保以下配置被添加:
security:
authorization: enabled
修改配置后,重启MongoDB服务以使更改生效:
sudo systemctl restart mongod
连接到MongoDB shell,切换到 admin
数据库,并创建一个管理员用户。例如:
mongo -u "admin" -p "your_password" --authenticationDatabase "admin"
在 admin
数据库中执行以下命令创建管理员用户:
use admin
db.createUser({
user: "admin",
pwd: "your_password",
roles: [ { role: "root", db: "admin" } ]
})
创建普通用户并为其分配适当的角色。例如,创建一个只读用户 readonlyuser
,并赋予其对 mydatabase
数据库的读取权限:
use mydatabase
db.createUser({
user: "readonlyuser",
pwd: "your_password",
roles: [ { role: "read", db: "mydatabase" } ]
})
验证用户是否具有特定角色的权限:
use mydatabase
db.getUser("readonlyuser")
如果需要限制用户对特定集合的访问,可以在创建用户时为其分配特定集合的权限:
use mydatabase
db.createUser({
user: "readonlyuser",
pwd: "your_password",
roles: [ { role: "read", db: "mydatabase", collection: "specificCollection" } ]
})
删除用户使用 db.dropUser
命令:
use mydatabase
db.dropUser("readonlyuser")
修改用户密码使用 db.changeUserPassword
方法:
use mydatabase
db.changeUserPassword("readonlyuser", "new_password")
查看当前数据库中的所有用户使用 db.showUsers()
命令:
use mydatabase
db.showUsers()