MongoDB - 用户与权限
2019-08-01 本文已影响0人
Anoyi
切换数据库
use admin
创建用户
所有权限
db.createUser(
{
user:"anoyi",
pwd:"password",
roles:["root"]
}
)
指定数据库所有权限
db.createUser(
{
user: "admin",
pwd: "admin",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
指定数据库指定权限
db.createUser(
{
user:"user",
pwd:"password",
roles:[
{role:"readWrite",db:"db01"},
{role:"readWrite",db:"db02"},
'read'
]
}
)
db01
和db02
库读写权限,其他库读权限
角色分类:
- 数据库用户角色:
read
、readWrite
- 数据库管理角色:
dbAdmin
、dbOwner
、userAdmin
- 集群管理角色:
clusterAdmin
、clusterManager
、clusterMonitor
、hostManage
- 备份恢复角色:
backup
、restore
- 所有数据库角色:
readAnyDatabase
、readWriteAnyDatabase
、userAdminAnyDatabase
、dbAdminAnyDatabase
- 超级用户角色:
root
- 内部角色:
__system
权限说明:
-
read
:允许用户读取指定数据库 -
readWrite
:允许用户读写指定数据库 -
dbAdmin
:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
-
userAdmin
:允许用户向system.users
集合写入,可以在指定数据库里创建、删除和管理用户 -
clusterAdmin
:只在admin
数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。 -
readAnyDatabase
:只在admin
数据库中可用,赋予用户所有数据库的读权限 -
readWriteAnyDatabase
:只在admin
数据库中可用,赋予用户所有数据库的读写权限 -
userAdminAnyDatabase
:只在admin
数据库中可用,赋予用户所有数据库的userAdmin
权限 -
dbAdminAnyDatabase
:只在admin
数据库中可用,赋予用户所有数据库的dbAdmin
权限 -
root
:只在admin
数据库中可用,超级账号、超级权限
查看用户
show users
修改密码
db.changeUserPassword("anoyi", "newPassword")
删除用户
db.dropUser('anoyi')
登录数据库
use <database>
db.auth('<username>', '<password>')