在CentOS上,MongoDB的权限管理主要通过角色和用户来实现。以下是创建用户、分配角色和设置权限的步骤:
启动MongoDB服务: 如果你还没有启动MongoDB服务,请使用以下命令启动它:
sudo systemctl start mongod
连接到MongoDB:
使用mongo命令连接到MongoDB实例:
mongo
创建用户管理员:
在admin数据库中创建一个具有用户管理权限的用户。例如,创建一个名为adminUser的用户,密码为your_password:
use admin
db.createUser({
user: "adminUser",
pwd: "your_password",
roles: ["userAdminAnyDatabase", "readWriteAnyDatabase"]
})
创建数据库和集合:
切换到你想要创建用户和分配角色的数据库,例如myDatabase:
use myDatabase
db.createCollection("myCollection")
创建具有特定角色的用户:
在myDatabase数据库中创建一个新用户,例如myUser,并为其分配读取和写入权限。同时,为用户分配一个自定义角色myRole,该角色具有对myCollection集合的读取和写入权限:
db.createUser({
user: "myUser",
pwd: "your_password",
roles: [
{ role: "readWrite", db: "myDatabase" },
{ role: "myRole", db: "myDatabase" }
]
})
创建自定义角色:
在admin数据库中创建一个自定义角色myRole,并为该角色分配对myCollection集合的读取和写入权限:
use admin
db.createRole({
role: "myRole",
privileges: [
{ resource: { db: "myDatabase", collection: "myCollection" }, actions: ["find", "insert", "update", "remove"] }
],
roles: []
})
使用新创建的用户进行身份验证:
断开与MongoDB的连接,然后使用新创建的用户myUser重新连接:
mongo -u myUser -p your_password --authenticationDatabase myDatabase
现在,你已经成功地在CentOS上为MongoDB设置了权限管理。你可以根据需要创建更多的用户和角色,并为它们分配不同的权限。