在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设置了权限管理。你可以根据需要创建更多的用户和角色,并为它们分配不同的权限。