MongoDB AUTH結果驗證


 

 

  1. 創建超級管理員和普通用戶

#創建超級管理員 super

db.createUser( 

  { user: "super", 

    pwd: "super", 

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

  } 

); 

 

 

#創建讀寫管理員 gxpt

db.createUser( 

  { 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之后,普通用戶只對所屬的數據庫有操作權限。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM