MongoDB AUTH结果验证

 

 

  1. 建立超级管理员和普通用户

#建立超级管理员 supermongodb

db.createUser( shell

  { user: "super", 数据库

    pwd: "super", spa

    roles: [ { role: "dbAdminAnyDatabase", db: "admin" } ] server

  } ci

); it

 

 

#建立读写管理员 gxptio

db.createUser( table

  { user: "gxpt", 登录

    pwd: "gxpt ", 

    roles: [ { role: "readWriteAnyDatabase", db: "gxpt" } ] 

  } 

); 

 

必须在启用AUTH以前认证用户

> db.auth('super', 'super');

> db.auth('gxpt', 'gxpt');

 

1.服务端查看当前用户

> show users;

{

        "_id" : "admin.readWrite",

        "user" : "readWrite",

        "db" : "admin",

        "roles" : [

                {

                        "role" : "readWrite",

                        "db" : "gxpt"

                }

        ],

        "mechanisms" : [

                "SCRAM-SHA-1"

        ]

}

{

        "_id" : "admin.super",

        "user" : "super",

        "db" : "admin",

        "roles" : [

                {

                        "role" : "dbAdminAnyDatabase",

                        "db" : "admin"

                }

        ],

        "mechanisms" : [

                "SCRAM-SHA-1"

        ]

}

}用户权限以下  

用户  

权限                      

身份

super 

dbAdminAnyDatabase

超级管理员

gxpt

readWrite

普通用户

 

分别比较super  和gxpt两个用户的操做权限

 

 

2.未开启AUTH认证

2.1 super用户登陆

新建数据库

 

ok

删除数据库

 

ok

2.1 gxpt用户登陆

新建数据库

 

ok

 

删除数据库

 

ok

结论:未启用AUTH,普通用户能够对任何数据库作 新增、删除操做!!!

3. 开启AUTH认证

须要在未启用AUTH的状况下对 admin 和 gxpt启用认证。

> db.auth("admin","admin");

1

> db.auth("gxpt","gxpt");

1

返回1 代表操做正常

 

[root@Mongodb237 mongodb]# mongo -usuper -psuper 127.0.0.1/admin

MongoDB shell version v4.0.0

connecting to: mongodb://127.0.0.1:27017/admin

MongoDB server version: 4.0.0

> db;db;

admin

> show dbs;show dbs;

admin  0.000GB

gxpt   0.000GB

local  0.000GB

 

ok

 

 

 

3.1           super用户登陆

super用户对gxpt数据库建立collection

 

 

ok

 

 

 

 

 

super用户对gxpt数据库建立collection

 

Ok

 

3.2           readwrite用户登陆

readwrite 只对gxpt数据库有读写权限,所以能够正常 建立、删除collection

 

 

 

对于其余数据库没有读写权限!!!所以其余数据库不可见

 

借用客户端对其余库建立collection 报错:未通过认证

 

结论:启用AUTH以后,普通用户只对所属的数据库有操做权限。

相关文章
相关标签/搜索