3.mongodb用户管理

1.用户及权限管理

  验证库:建立用户时use到的库,在使用用户时,要加上验证库才能登陆。

  对于管理员用,必须在admin下创建

  1.建立用户时,use到的库,就是此用户的验证库

  2.登陆时,必须明确指定验证库才能登陆

  3.通常,管理员的验证库是admin,普通用户的验证库一般是所管理的库设置为验证库

  4.如果直接登录到数据库,不进行use,默认的验证库是test,不是我们生产建议的。

  5.从3.6版本开始,不添加bind Ip参数,默认不让远程登录,只能本地管理员登录。

2.用户创建语句

use admin 
db.createUser
{
    user: "<name>",
    pwd: "<cleartext password>",
    roles: [
       { role: "<role>",
     db: "<database>" } | "<role>",
    ...
    ]
}

基本语法说明:
user:用户名
pwd:密码
roles:
    role:角色名
    db:作用对象 
role:root, readWrite,read   
验证数据库:
mongo -u oldboy -p 123 10.0.0.53/oldboy

3.用户管理例子

创建超级管理员:管理所有数据库(必须use admin再去创建)
$ mongo
use admin
db.createUser(
{
    user: "root",
    pwd: "root123",
    roles: [ { role: "root", db: "admin" } ]
}
)

配置文件中,加入以下配置
security:
  authorization:enabled ###支持验证
重启mongodb
  systemctl restart mongod

4. 创建库管理用户

mongo -uroot -proot123   admin

use app

db.createUser(

user: "admin",

pwd:"admin",

roles:[  { role:"dbAdmin", db:"app" }  ]

)

db.auth('admin','admin')

登录测试   :   mongo -uadmin -padmin   172.17.94.206/app

5.创建对app 数据库,读写权限的用户app01   ******

(1)超级管理员用户登录

mongo -uroot -proot123  admin

(2)选择一个验证库

use app

(3)创建用户

db.createUser(

  {

    user:"app01",
    pwd:"app01",
    roles:[{role:"readWrite",db:"app"}]
  }

)
mongo -uapp01 -papp01 远程地址/app库

6.创建app数据库读写权限的用户并对test数据库具有读权限

####创建一个用户对多个库具有不同的权限
mongo -uroot -proot123 远程ip地址/admin use app db.createUser( { user:"app03", pwd:"app03", roles:[ { role:"readWrite", db:"app"},{ role:"read",db:"test" } ] } )

7 查询mongodb中的用户信息

mongo -uroot -proot123  远程ip地址/admin

db.system.users.find().pretty()

8.删除用户(root 身份登录,use到验证库)

删除用户

mongo -uroot -proot123  172.17.94.206/admin

use app

db.dropUser("admin")
原文地址:https://www.cnblogs.com/zmc60/p/13947266.html