在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()