创建用户并设置权限
db.createUser(
{
user: "admin",
pwd: "123456",
roles: [ { role: "root", db: "dbname" },{role: "__system", db: "admin" } ]
}
)
db.createUser(
{
user: "root",
pwd: "123456",
roles: [
{ role: "readWrite", db: "dbname" },
{ role: "dbAdmin", db: "dbname" },
]
}
)
db.createUser(
{
user: "xiaoming",
pwd: "123456",
roles: [ { role: "readWrite", db: "dbname" } ]
}
)
回收权限revoke:
db.revokeRolesFromUser("root",[{role:"readWrite",db:"test"}])
db.revokeRolesFromUser("root",[{role:"dbAdmin",db:"test"}])
增加权限grant:
db.grantRolesToUser("admin",[{role:"readWriteAnyDatabase",db:"admin"}])
db.grantRolesToUser("admin",[{role:"dbAdmin",db:"dbname"}])
查看用户权限
db.system.users.find().pretty()
删除某个用户,接受字符串参数
db.dropUser("root")
Mongo中的角色
Mongo中可用的角色有以下:
read
提供了对指定数据库所有集合的只读访问。
readWrite
提供了指定数据库中对任意集合的读写访问。
dbAdmin
用户可以在指定数据库中执行管理操作,使用ensureIndex、dropIndexes、reIndex、indexStats管理索引、重命名集合、创建集合等。
userAdmin
用户可以对指定数据库的system.users集合进行readWrite操作。它还启用了对已有用户的权限进行修改或者创建用户的功能,实际上指定了数据库的超级用户角色。
clusterAdmin
使得用户可以对修改或显示与整个系统有关的信息的管理操作授予访问权限。clusterAdmin只适用于管理数据库。
readAnyDatabase
使得用户可以读取Mongo环境中的任意数据库。
readWriteAnyDatabase
类似于readWrite,只不过它适用于所有数据库。
userAdminAnyDatabase
类似于userAdmin,只不过它适用于所有数据库。
dbAdminAnyDatabase
类似于dbAdmin,只不过它适用于所有数据库。