mongodb配置服務及設置密碼(windows系統版)

初始安裝完成後,存在3個數據庫,無密碼。

mongodb配置服務及設置密碼(windows系統版)

一、找到安裝位置

mongodb配置服務及設置密碼(windows系統版)

二、客戶端登入,創建用戶和密碼

1、找到客戶端mongo.exe

登陸命令是mongo.exe 數據庫 -u 用戶 -p 密碼

不寫參數默認登入test數據庫,可以嘗試插入數據看看效果

mongodb配置服務及設置密碼(windows系統版)

2、創建用戶和密碼

命令是

use admin

db.createUser(

{

user: "root",

pwd: "123456",

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

}

)

可以選擇的role有:

角色說明:

Read: 允許用戶讀取指定數據庫

readWrite: 允許用戶讀寫指定數據庫

dbAdmin: 允許用戶在指定數據庫中執行管理函數,如索引創建、刪除,查看統計或訪問system.profile

userAdmin: 允許用戶向system.users集合寫入,可以找指定數據庫裡創建、刪除和管理用戶

dbOwner: 允許在當前DB中執行任意操作

readAnyDatabase: 賦予用戶所有數據庫的讀權限,只在admin數據庫中可用

readWriteAnyDatabase: 賦予用戶所有數據庫的讀寫權限,只在admin數據庫中可用

userAdminAnyDatabase:賦予用戶所有數據庫管理User的權限,只在admin數據庫中可用

dbAdminAnyDatabase: 賦予管理所有數據庫的權限,只在admin數據庫中可用

root: 超級賬號,超級權限,只在admin數據庫中可用。

三、打開服務的密碼驗證選項

1、卸掉服務,然後按有密碼方式install為系統服務

原始的服務配置是"C:\\Program Files\\MongoDB\\Server\\4.0\\bin\\mongod.exe" --config "C:\\Program Files\\MongoDB\\Server\\4.0\\bin\\mongod.cfg" --service

mongodb配置服務及設置密碼(windows系統版)

可以在註冊表中查詢到,以便確定配置文件路徑

sc delete MongoDB

2、刪除成功後,重新配置服務

刪除成功後,重新配置服務
mongod.exe --auth --config "指定路徑的\\mongod.cfg" --install

例如:

mongod.exe --auth --config "C:\\Program Files\\MongoDB\\Server\\4.0\\bin\\mongod.cfg" --install

注意在管理器中把後臺的服務進程關掉,否則日誌文件打不開。

mongodb配置服務及設置密碼(windows系統版)

四、創建其他用戶等常用命令

每個庫分別創建用戶,在admin中創建的用戶可以分配到其他庫的權限,

創建用戶

db.createUser(

{

user: "xxxx",

pwd: "123456",

roles: [ { role: "dbOwner", db: "目標庫" } ]

}

)

注意,直接在admin庫下創建其他庫的用戶是這樣的

{

"_id" : "admin.yzd",

"user" : "yzd",

"db" : "admin",

"roles" : [

{

"role" : "dbOwner",

"db" : "test"

}

]

}

如果切換到其他庫或者直接登入的是其他庫,創建的用戶是這樣的

{

"_id" : "test.yzd",

"user" : "yzd",

"db" : "test",

"roles" : [

{

"role" : "dbOwner",

"db" : "test"

}

]

}

所以,創建用戶建議切換到所在數據庫上後再創建,否則還是屬於admin庫只是有其他庫權限,無法直接登入目標庫,需要先登入admin後再切換。

驗證下密碼設置是否成功,1表示登錄成功,0表示登錄失敗

db.auth("root","123456")

列出當前庫的用戶

show users

列出所有庫的用戶

db.system.users.find().pretty()

刪除單個用戶 (root權限下)

db.system.users.remove({user:"XXXXXX"})

刪除所有用戶

db.system.users.remove({})

刪除指定庫用戶(主要是避免不用庫有同名用戶)

db.system.users.remove({user:"用戶",db:"庫"})

修改密碼

db.changeUserPassword('yzd','test')


分享到:


相關文章: