DBA---------------------------数据库--------------------Mongodb集群3.6.部署(mongodb用户管理)

一、用户管理

注意:
  验证库,建立用户时use到的库,在使用用户时,要加上验证库才能登陆。
  对于管理员用户,必须在admin下创建.

  1.  建用户时,use到的库,就是此用户的验证库
  2.  登录时,必须明确指定验证库才能登录
  3.  通常,管理员用的验证库是admin,普通用户的验证库一般是所管理的库设置为验证库
  4.  如果直接登录到数据库,不进行use,默认的验证库是test,不是我们生产建议的.
use admin 
mongo 10.0.0.51/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 app -p 192.168.122.141/app01

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

用户管理例子:

-- 1. 创建超级管理员:管理所有数据库(必须use admin再去创建)

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

验证用户
db.auth('root','root123')

mongo.conf配置文件中,加入以下配置

security:
    authorization: enabled

重启mongodb

mongod -f /mongodb/conf/mongo.conf --shutdown 
mongod -f /mongodb/conf/mongo.conf 

登录验证

mongo -uroot -proot123  admin
mongo -uroot -proot123  10.0.0.51/admin
View Code

或者

use admin
db.auth('root','root123')
View Code

查看用户

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

-- 2、创建库管理用户

use app
db.createUser(
{
user: "admin",
pwd: "admin",
roles: [ { role: "dbAdmin", db: "app" } ]
}
)

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


登录测试

mongo -uadmin -padmin 192.168.122.141/app

-- 3、创建对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 192.168.122.141/app


-- 4、创建app数据库读写权限的用户并对test数据库具有读权限:

mongo -uroot -proot123 192.168.122.141/admin
use app
db.createUser(
{
user: "app03",
pwd: "app03",
roles: [ { role: "readWrite", db: "app" },
{ role: "read", db: "test" }]})

-- 5、查询mongodb中的用户信息

mongo -uroot -proot123 192.168.122.141/admin
db.system.users.find().pretty()

-------------------------------------------------------------------

{
"_id" : "admin.root",
"user" : "root",
"db" : "admin",
"credentials" : {
"SCRAM-SHA-1" : {
"iterationCount" : 10000,
"salt" : "HsSHIKBQyMnFEzA/PSURYA==",
"storedKey" : "dbOoQserGa/fB+JQyLqr1yXQZBM=",
"serverKey" : "h+b/vARfWp6cmDquUN6bJo4whdc="
}
},
"roles" : [
{
"role" : "root",
"db" : "admin"
}
]
}

---------------------------------------------------------

-- 6、删除用户(root身份登录,use到验证库)

删除用户

mongo -uroot -proot123 192.168.122.141/admin
use app
db.dropUser("app01")

 

posted @ 2019-09-28 22:32  lyh3420  阅读(111)  评论(0)    收藏  举报