mongodb密碼和傳統數據如mysql等有些區別:
mongodb的用戶名和密碼是基於特定數據庫的,而不是基於整個系統的。所有所有數據庫db都需要設置密碼
mongodb設置管理用戶和密碼:
show dbs
在mongodb新版本里並沒有admin數據庫,但是並不妨礙第2步操作。
use admin
進入admin數據庫
創建管理員賬戶
db.createUser({ user: "useradmin", pwd: "adminpassword", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })
mongodb中的用戶是基於身份role的,該管理員賬戶的 role是 userAdminAnyDatabase。 ‘userAdmin’代表用戶管理身份,’AnyDatabase’ 代表可以管理任何數據庫。
驗證第3步用戶添加是否成功
db.auth("useradmin", "adminpassword")
如果返回1,則表示成功。
exit
退出系統 db.auth()
方法理解為 用戶的驗證功能
修改配置
sudo vi /etc/mongod.conf
重啟mongodb sudo service mongod restart
進入mongodb,用第3步的 管理員賬戶登錄,用該賬戶創建其他數據庫管理員賬號
use admin
db.auth("useradmin", "adminpassword")
新建你需要管理的mongodb 數據的賬號密碼。
use yourdatabase
db.createUser({ user: "youruser", pwd: "yourpassword", roles: [{ role: "dbOwner", db:"yourdatabase" }] })
rote:dbOwner 代表數據庫所有者角色,擁有最高該數據庫最高權限。比如新建索引等
新建數據庫讀寫賬戶
use yourdatabase
db.createUser({ user: "youruser2", pwd: "yourpassword2", roles: [{ role: "readWrite",db: "yourdatabase" }] })
該用戶用於該數據的讀寫,只擁有讀寫權限。現在數據的用戶名和密碼就建好了。
可以使用:mongodb://youruser2:yourpassword2@localhost/yourdataba