【场景】当在线环境切换时需要控制用户登入DB,但是居我了解Mongodb用户权限是控制在角色上,如
read,readWrite等
如:
mongos>db.runCommand({
upDateUser:"x1",
roles:[{role:"read",db:"xxxx"}]
})
如上:其实用户还是可以登入到数据库,只是不能写库。如何控制用户不允许登入库呢?
创建角色:
use admin
db.createRole({
role: "noLogin",
privileges: [],
roles: []
})
创建/更新用户:
use admin
db.createUser({
user: "x1",
pwd: "password",
roles: [{ role: "noLogin", db: "xxxx" }]
})
评论
有用 1这个显示是已经成功了,请确认创建语句,应用的角色名称,数据库名称是否正常
db.createUser({
user: "xxxxx",
pwd: "xxxxfdad",
roles: [
{ role: "nologin", db: "admin" }
]
})
评论
有用 0use admin
db.createRole({
role: "nologin",
privileges: [
{ resource: { db: "test", collection: "" }, actions: [ "find" ] }
],
roles: []
})
评论
有用 0use admin db.createRole({ role: "nologin", privileges: [], roles: [], authenticationRestrictions: [ { clientSource: [], serverAddress: [], serverCertificate: [] } ] })
use test
db.createRole({
role: "nologin",
privileges: [],
roles: [],
authenticationRestrictions: [
{
clientSource: [],
serverAddress: [],
serverCertificate: []
}
]
})
评论
有用 0
墨值悬赏


