用户权限管理攻略——MongoDB

爱被打了一巴掌 2023-02-20 08:27 88阅读 0赞

目录

MongoDB数据库角色

MongoDB用户权限设置


MongoDB数据库角色

  1. 数据库用户角色:read、readWrite;
  2. 数据库管理角色:dbAdmin、dbOwner、userAdmin;
  3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
  4. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
  5. 超级用户角色:root

    • Read:允许用户读取指定数据库
    • readWrite:允许用户读写指定数据库
    • dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
    • userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户

admin数据库中可用

  1. readAnyDatabase: 赋予用户所有数据库的读权限
  2. readWriteAnyDatabase: 赋予用户所有数据库的读写权限
  3. userAdminAnyDatabase: 赋予用户所有数据库的userAdmin权限
  4. dbAdminAnyDatabase: 赋予用户所有数据库的dbAdmin权限。
  5. root:只在admin数据库中可用。超级账号,超级权限

MongoDB用户权限设置

用户权限设置

  • MongoDB是没有默认管理员账号,所以要先添加管理员账号,再开启权限认证。
  • 切换到admin数据库,添加的账号才是管理员账号。
  • 用户只能在用户所在数据库登录,包括管理员账号。
  • 管理员可以管理所有数据库,但是不能直接管理其他数据库,要先在admin数据库认证后才可以。

创建管理员账户(必须在admin数据库下才是管理员账号)

在admin数据库中,添加一个用户并赋予root角色。

  1. use admin
  2. db.createUser( {
  3. user: "adminUser",
  4. pwd: "adminPass",
  5. roles: [ {role: root", db: "admin"}]
  6. } )
  7. # user 代表新用户名字 pwd 代表新用户密码
  8. db.auth("adminUser", "adminPass") # 认证
  9. db.getUsers() # 查看用户

创建普通用户,包括使用权限以及能够访问的数据库

  • 一旦经过认证的用户管理员,可以使用db.createUser()去创建额外的用户。
  • 一定要切换到对应的数据库再创建用户

    db.createUser(
    {

    1. user:"用户",
    2. pwd:"123",
    3. roles:[{role:"readWrite",db:"test"},
    4. {role:"read",db:"zuo"}
    5. ]
    6. }

    )
    db.auth(“用户”, “123”) # 认证
    db.getUsers() # 查看用户

  1. 可以使用以下命令,来查看创建的用户
  2. show users
  3. db.system.users.find()

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDc3NTI1NQ_size_16_color_FFFFFF_t_70


修改密码和用户信息

  1. 修改密码和用户信息
  2. db.runCommand( {
  3. updateUser:"username",
  4. pwd:"xxx",
  5. customData:{title:"xxx"}
  6. } )
  7. 删除数据库用户
  8. use admin
  9. db.dropUser('username')

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDc3NTI1NQ_size_16_color_FFFFFF_t_70 1

启用权限验证

修改mongo.conf文件,最后一行添加

#启用权限访问

auth=true

  1. 然后重新启动MongoDB
  2. net stop MongoDB
  3. net start MongoDB

进入客户端之后,再切换到对应数据库

例:use test db.auth(“用户”, “123”) # username, password

发表评论

表情:
评论列表 (有 0 条评论,88人围观)

还没有评论,来说两句吧...

相关阅读

    相关 索引——MongoDB

    1. 索引简介 索引:建立在表格之上,提供一个能够更快的定位到数据的方法 1、通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个