1. 程式人生 > >MongoDB-4:使用者管理

MongoDB-4:使用者管理

一、簡介

    1.mongdb中有一個admin的資料庫,牽涉到伺服器配置層面的操作,需先切換到admin資料庫,

      即use admin 進入超級使用者管理模式。

    2.mongo的使用者是以資料庫為單位來建立的,每個資料庫有自己的管理員。

    3.在設定使用者時,需先在admin資料庫下建立管理員,這個管理員登陸後,相等於超級管理員。 

二、常用操作

    1.切換到超級管理模式

        use admin

    2.建立超級管理員

        db.createUser({user:'chenfenli', pwd:'123456', roles:['userAdminAnyDatabase']});       

        role型別:

            readAnyDatabase 任何資料庫的只讀許可權

(和read相似)

            readWriteAnyDatabase 任何資料庫的讀寫許可權(和readWrite相似)

            userAdminAnyDatabase 任何資料庫使用者的管理許可權(和userAdmin相似)

            dbAdminAnyDatabase 任何資料庫的管理許可權

(dbAdmin相似)

        注意:新增使用者後,再次退出並登入,發現依然可以直接讀資料庫?

        原因:mongodb伺服器啟動時,預設不需要認證的

        解決:重啟伺服器,啟動伺服器時指定 --auth

    3.建立使用者

        1) 進入超級管理員模式並驗證:

            use admin

            db.auth('使用者名稱','密碼')

        2)檢視資料庫

            

> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
shop    0.000GB
> 

        3) 進入到shop資料庫

            use shop

        4) 檢視shop對應的使用者

> show users
{
	"_id" : "shop.xiaocheng2",
	"user" : "xiaocheng2",
	"db" : "shop",
	"roles" : [
		{
			"role" : "readWrite",
			"db" : "shop"
		}
	]
}
> 

        5)建立使用者

            db.createUser({user:'xiaocheng3',pwd:'123456',roles:[{role:'readWrite',db:'shop'}]})

Successfully added user: {
	"user" : "xiaocheng3",
	"roles" : [
		{
			"role" : "readWrite",
			"db" : "shop"
		}
	]
}

        6)登入

            db.auth('xiaocheng2','123456')

> db.auth('xiaocheng2','123456')
1

            1表示登入成功

        7)查詢

            show collections

> show collections
test