這篇文章主要介紹mongodb開啟身份認證的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
開啟身份認證的兩種方式
1、連接時使用命令參數 --auth
mongod --auth --port 27017 --dbpath '數據庫文件的絕對路徑'
2、修改mongod.conf文件
如果你使用配置文件啟動mongodb,在配置文件中加入下列內容,這里有兩種寫法:
YMAL的配置文件格式(mongodb2.6版本之后引入的配置文件格式)
注意:這里有一個大坑,yaml格式的配置文件,要求是同冒號+空格來分隔鍵值對,否則會解析錯誤。(當時折騰了很久)
security: authorization: enabled

可以使用命令mongod -f /etc/mongod.conf啟動mongodb,如果解析錯誤,會在終端打印出失敗的原因,沒有信息說明mongod實例啟動成功了!
2.6版本之前的配置文件格式(向后兼容的,所以兩種格式的配置可以混用)
auth=true
以上兩種修改方式,大家選擇一種即可,修改完之后使用命令sudo service mongod restart 重啟服務,再使用命令service mongod status查看服務是不是真的啟動了,如果顯示mongod start/running說明啟動成功。之后就啟用了角色訪問控制,用戶只能訪問已被授予權限的數據庫資源和操作。
小貼士:windows用戶可以參考如下命令,將mongodb安裝為服務,這樣就不用每次都去啟動mongod實例
#安裝服務 mongod --config "E:\someSoftWare\MongoDB\mongodb.config" --install --serviceName "mongo" #卸載服務 mongod --dbpath "E:\someSoftWare\data\db" --logpath "E:\someSoftWare\data\log\mongodb.log" --remove #啟動服務 net start mongo
注意:這里config文件的路徑要加雙引號("),否則會一直提示找不到文件
使用用戶管理員登錄數據庫
在連接期間進行身份驗證
mongo --port 27017 -u "登錄名" -p "密碼" --authenticationDatabase "數據庫名"
如果驗證失敗會在命令行打印如下信息

連接成功之后再認證
#連接
mongo --port 27017
#進入admin數據庫
use admin
#在admin數據庫中認證
db.auth('用戶管理員名稱','密碼')
驗證成功打印1,失敗打印0.
使用用戶管理員創建其他用戶,細化管理。
給某個數據創建具有讀權限的用戶
#給test數據庫添加
db.createUser({
user:"readUser",
pwd:'123qwezxc',
roles:[
{
role:"read",
db:"test"
}
]
})創建具有讀寫權限的用戶
db.createUser({
user:"readWriteUser",
pwd:'123qwezxc',
roles:[
{
role:"readWrite",
db:"test"
}
]
})創建具有數據備份權限的用戶(只能在admin數據庫中添加)
db.createUser({
user:"backupUser",
pwd:'123qwezxc',
roles:[
{
role:"backup",
db:"admin"
}
]
})注意:db只能指定admin,因為backup和restore角色都在admin數據據庫中
創建具有數據備份權限的用戶(只能在admin數據庫中添加)
db.createUser({
user:"restoreUser",
pwd:'123qwezxc',
roles:[
{
role:"restore",
db:"admin"
}
]
})mongodb系統內置了很多角色,這里就不一一列舉了,可以查看mognodb內置角色,創建符合自己需求的用戶。
以上是mongodb開啟身份認證的方法的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。