MongoDB使用者管理

2021-06-28 10:20:10 字數 2690 閱讀 2762

開啟mongodb服務時不新增任何引數時,預設是沒有許可權驗證的,登入的使用者可以對資料庫任意操作而且可以遠端訪問資料庫!

在剛安裝完畢的時候mongodb都預設有乙個admin資料庫,此時admin資料庫是空的,沒有記錄許可權相關的資訊!當admin.system.users乙個使用者都沒有時,即使mongod啟動時新增了--auth引數,如果沒有在admin資料庫中新增使用者,此時不進行任何認證還是可以做任何操作(不管是否是以--auth 引數啟動),直到在admin.system.users中新增了乙個使用者。

需要注意的是:

admin.system.users中將會儲存比在其它資料庫中設定的使用者許可權更大的使用者資訊,擁有超級許可權,也就是說在admin中建立的使用者可以對mongodb中的其他資料庫資料進行操作。

1 mongodb系統中,資料庫是由超級使用者來建立的,乙個資料庫可以包含多個使用者,乙個使用者只能在乙個資料庫下,不同資料庫中的使用者可以同名!

2 當admin.system.users乙個使用者都沒有時,即使mongod啟動時新增了--auth引數,如果沒有在admin資料庫中新增使用者,此時不進行任何認證還是可以做任何操作(不管是否是以--auth 引數啟動),直到在admin.system.users中新增了乙個使用者。

3 特定資料庫比如db1下的使用者user1,不能夠訪問其他資料庫db2,但是可以訪問本資料庫下其他使用者建立的資料!

4 不同資料庫中同名的使用者不能夠登入其他資料庫!比如db1,db2都有user1,以user1登入db1後,不能夠登入到db2進行資料庫操作!

5 在admin資料庫建立的使用者具有超級許可權,可以對mongodb系統內的任何資料庫的資料物件進行操作!

【】使用者管理

1 新增唯讀使用者

db.adduser("skyman.man","manchungood",true)

2 修改唯讀使用者為普通使用者

db.adduser("skyman.man","manchungood",false);

db.adduser("admin","manchungood",false);

3 刪除使用者

db.removeuser("admin");

4 切換資料庫

開啟資料庫,沒有的話立即建乙個

> use admin 

5 增加或修改使用者密碼,必須在非--auth方式下啟動mongodb,建立使用者,建立完畢,關閉mongodb,以--auth方式啟動mongodb,再以admin使用者登入自己專屬的db

> db.adduser('admin','admin')

6 檢視使用者列表

> db.system.users.find()

7 #使用者認證,要讓登陸的使用者能具有某個db的許可權,必須進入該db,執行auth命令才能生效。

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

8 刪除使用者對該db的訪問許可權

> db.removeuser('mongodb');

--檢視當前db的所有使用者

> show users

9 使用使用者登入mongodb

[root@mongo ~]# /usr/local/mongodb37018/bin/mongo 127.0.0.1:37017/test -uadmin -padmin

mongodb shell version: 2.0.2

connecting to: 127.0.0.1:37017/test

其中test是庫名 

10.#檢視所有資料庫

--檢視所有資料庫

> show dbs;

--切換資料庫

> use admin;

--檢視正在使用的資料庫

> db

--檢視當前資料庫裡有多少個collections 

show collections 

> show dbs

--檢視所有的collection

> show collections 

--檢視各collection的狀態

> db.printcollectionstats()

--檢視主從複製狀態

> db.printreplicationinfo()

--修復資料庫

> db.repairdatabase()

--設定記錄profiling,0=off 1=slow 2=all 

> db.setprofilinglevel(1)

--檢視profiling

> show profile

--拷貝資料庫

> db.copydatabase('mail_addr','mail_addr_tmp')

--刪除collection

> db.mail_addr.drop()

--刪除當前的資料庫

> db.dropdatabase()

primary> use identify;

switched to db identify

primary> db.dropdatabase();

primary>

Mongodb使用者管理

使用者管理 預設不會驗證使用者名稱密碼。啟動時候新增 auth run with security 1.mongod auth 2.mongo無密碼登入到資料庫中。3.useadmin 切換到admin資料庫 4.db.adduser root 123 新增最高許可權使用者 5.db.auth ro...

MongoDB使用者管理

建立乙個超級使用者 use admin db.createuser 超級使用者的role有兩種,useradmin或者useradminanydatabase 比前一種多加了對所有資料庫的訪問 db是指定資料庫的名字,admin是管理資料庫。用新建立的使用者登入 mongo host u admin...

MongoDB的使用者管理

預設啟動mongodb,你是不需要登陸使用者帳號和密碼的。但是,投入到生產中,安全性很重要的。所以。本帖就來講解下,如何新增管理使用者的一些操作。啟動mongodb時,通過使用 auth選項,就可以開啟資料庫的安全性檢查,此時只有經過資料庫認證的使用者才可以進行讀寫操作。但是 我們首先要在未開啟安全...