MongoDB:用户权限管理

x33g5p2x  于2022-03-03 转载在 Go  
字(1.8k)|赞(0)|评价(0)|浏览(252)

MongoDB:用户权限管理

进入mongo的shell命令是:mongo

创建 admin超级管理员用户

db.createUser(
{
user:"admin",
pwd:"admin",
customData:{description:"superuser"},
roles:[{role:"userAdminAnyDatabase",db:"admin"}]
}
)

参数介绍:

  • user:为新用户的名字

  • pwd:用户的密码

  • cusomData:为任意内容,例如可以为用户全名介绍

  • roles:指定用户角色

  • db:值数据库的名称,admin是管理的数据库
    注意:

  • 这里要给admin数据库创建超级管理员,需要在admin数据库下使用上面的命令。举例:如果在test数据库下使用,则是给test数据库创建用户

  • 添加的用户都只用于admin数据库,而非你存储业务数据的数据库

创建 root超级管理员用户

db.createUser(
    {
        user:"root",
        pwd:"pwd",
        roles:["root"]
    }
)

创建一个业务数据库管理员用户

只负责某一个或几个数据库的増查改删

db.createUser({
    user:"user01",
    pwd:"123456",
    customData:{ name:'jim'},
    roles:[
        {role:"readWrite",db:"db001"},
        {role:"readWrite",db:"db002"},
        'read'// 对其他数据库有只读权限,对db001、db002是读写权限
    ]
})

查看创建的用户

show users 或 db.system.users.find() 或 db.runCommand({usersInfo:"userName"})

删除用户

# 在有删除该库权限的用户下,即可删除用户
db.dropUser('username')

修改密码

use admin
db.changeUserPassword("username", "xxx")

修改密码和用户信息

db.runCommand(
    {
        updateUser:"username",
        pwd:"xxx",
        customData:{title:"xxx"}
    }
)

开启权限认证

mongo --auth

或者修改mongo.conf,最后一行添加

#启用权限访问
auth=true

数据库角色权限介绍

  1. 数据库用户角色:read、readWrite;
  2. 数据库管理角色:dbAdmin、dbOwner、userAdmin;
  3. 集群管理角色:clusterAdmin、clusterManager、4. clusterMonitor、hostManage;
  4. 备份恢复角色:backup、restore;
  5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
  6. 超级用户角色:root
  7. 内部角色:__system
  8. Read:允许用户读取指定数据库
  9. readWrite:允许用户读写指定数据库
  10. dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
  11. userAdmin:允许用户向system.users集合写入,可以在指定数据库里创建、删除和管理用户
  12. clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
  13. readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
  14. readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
  15. userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
  16. dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
  17. root:只在admin数据库中可用。超级账号,超级权限

相关文章