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 任何資料庫的只讀許可權
readWriteAnyDatabase 任何資料庫的讀寫許可權(和readWrite相似)
userAdminAnyDatabase 任何資料庫使用者的管理許可權(和userAdmin相似)
dbAdminAnyDatabase 任何資料庫的管理許可權
注意:新增使用者後,再次退出並登入,發現依然可以直接讀資料庫?
原因: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