Ubuntu 上 MongoDB 权限管理实操指南
一 核心概念与准备
二 启用访问控制与基础安全
mongosh --port 27017use admin
db.createUser({
user: "admin",
pwd: passwordPrompt(), -- 推荐交互输入密码
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
})
net:
port: 27017
bindIp: 127.0.0.1
security:
authorization: enabled
sudo systemctl restart mongodmongosh --port 27017 -u admin -p --authenticationDatabase admin
三 创建业务用户与分配权限
--authenticationDatabase 指定。use mydb
db.createUser({
user: "mydb_user",
pwd: passwordPrompt(),
roles: [ { role: "dbOwner", db: "mydb" } ]
})
use mydb
db.createUser({
user: "mydb_read",
pwd: passwordPrompt(),
roles: [ { role: "read", db: "mydb" } ]
})
mongosh mongodb://mydb_read:YOUR_PASSWORD@localhost:27017/mydb
use admin
db.createUser({
user: "ops",
pwd: passwordPrompt(),
roles: [
{ role: "readWrite", db: "mydb" },
{ role: "read", db: "reporting" }
]
})
四 用户与权限的维护
use mydb; show usersuse mydb; db.getUser("mydb_user")db.getRole("readWrite", { showPrivileges: true })db.updateUser("mydb_user", { roles: [ { role: "readWrite", db: "mydb" } ] })db.revokeRolesFromUser("mydb_user", [ { role: "readWrite", db: "mydb" } ])use mydb; db.dropUser("mydb_user")mongosh mongodb://mydb_user:PASSWORD@HOST:27017/mydbmongosh mongodb://mydb_read:PASSWORD@HOST:27017/mydbmongosh mongodb://admin:PASSWORD@HOST:27017/admin五 常见注意事项