MongoDB數據庫新建數據庫用戶


mongodb設置密碼

mongodb密碼和傳統數據如mysql等有些區別:

mongodb的用戶名和密碼是基於特定數據庫的,而不是基於整個系統的。所有所有數據庫db都需要設置密碼

mongodb設置管理用戶和密碼:

show dbs

# 在mongodb新版本里並沒有admin數據庫,但是並不妨礙操作。
# 進入admin數據庫
use admin 

# 創建管理員賬戶
db.createUser({ user: "useradmin", pwd: "adminpassword", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })

> mongodb中的用戶是基於身份role的,該管理員賬戶的 role是 userAdminAnyDatabase。 ‘userAdmin’代表用戶管理身份,’AnyDatabase’ 代表可以管理任何數據庫。

Mongodb數據賬戶權限詳細信息

數據庫用戶角色:read、readWrite;
數據庫管理角色:dbAdmin、dbOwner、userAdmin;
集群管理角色:clusterAdmin、clusterManager、4. clusterMonitor、hostManage;
備份恢復角色:backup、restore;
所有數據庫角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
超級用戶角色:root
內部角色:__system

Read:允許用戶讀取指定數據庫
readWrite:允許用戶讀寫指定數據庫
dbAdmin:允許用戶在指定數據庫中執行管理函數,如索引創建、刪除,查看統計或訪問system.profile
userAdmin:允許用戶向system.users集合寫入,可以在指定數據庫里創建、刪除和管理用戶
clusterAdmin:只在admin數據庫中可用,賦予用戶所有分片和復制集相關函數的管理權限。
readAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的讀權限
readWriteAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的讀寫權限
userAdminAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的userAdmin權限
dbAdminAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的dbAdmin權限。
root:只在admin數據庫中可用。超級賬號,超級權限

驗證用戶添加是否成功

db.auth("useradmin", "adminpassword") 如果返回1,則表示成功。
exit退出系統
db.auth()方法理解為 用戶的驗證功能

修改配置

sudo vi /etc/mongod.conf
找到#security: 取消注釋,修改為:

security:
 authorization: enabled #注意縮進,縮進參照配置文件其他配置。縮進錯誤可能重啟不成功。

重啟mongodb

sudo service mongod restart

進入mongodb, 管理員賬戶登錄,用該賬戶創建其他數據庫管理員賬號

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/yourdatabase來鏈接

轉載文檔

https://juejin.im/post/5b0519cf518825426539d05e
https://segmentfault.com/a/1190000015603831


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM