溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

mongodb開(kāi)啟身份認(rèn)證的方法

發(fā)布時(shí)間:2020-06-29 11:14:12 來(lái)源:億速云 閱讀:480 作者:清晨 欄目:編程語(yǔ)言

這篇文章主要介紹mongodb開(kāi)啟身份認(rèn)證的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

開(kāi)啟身份認(rèn)證的兩種方式

1、連接時(shí)使用命令參數(shù) --auth

mongod --auth --port 27017 --dbpath '數(shù)據(jù)庫(kù)文件的絕對(duì)路徑'

2、修改mongod.conf文件

如果你使用配置文件啟動(dòng)mongodb,在配置文件中加入下列內(nèi)容,這里有兩種寫(xiě)法:

YMAL的配置文件格式(mongodb2.6版本之后引入的配置文件格式)

注意:這里有一個(gè)大坑,yaml格式的配置文件,要求是同冒號(hào)+空格來(lái)分隔鍵值對(duì),否則會(huì)解析錯(cuò)誤。(當(dāng)時(shí)折騰了很久)

security:
  authorization: enabled

mongodb開(kāi)啟身份認(rèn)證的方法

可以使用命令mongod -f /etc/mongod.conf啟動(dòng)mongodb,如果解析錯(cuò)誤,會(huì)在終端打印出失敗的原因,沒(méi)有信息說(shuō)明mongod實(shí)例啟動(dòng)成功了!

2.6版本之前的配置文件格式(向后兼容的,所以?xún)煞N格式的配置可以混用)

auth=true

以上兩種修改方式,大家選擇一種即可,修改完之后使用命令sudo service mongod restart 重啟服務(wù),再使用命令service mongod status查看服務(wù)是不是真的啟動(dòng)了,如果顯示mongod start/running說(shuō)明啟動(dòng)成功。之后就啟用了角色訪(fǎng)問(wèn)控制,用戶(hù)只能訪(fǎng)問(wèn)已被授予權(quán)限的數(shù)據(jù)庫(kù)資源和操作。

小貼士:windows用戶(hù)可以參考如下命令,將mongodb安裝為服務(wù),這樣就不用每次都去啟動(dòng)mongod實(shí)例

#安裝服務(wù)
mongod --config "E:\someSoftWare\MongoDB\mongodb.config" --install --serviceName "mongo"
#卸載服務(wù)
mongod --dbpath "E:\someSoftWare\data\db" --logpath "E:\someSoftWare\data\log\mongodb.log"  --remove
#啟動(dòng)服務(wù)
net start mongo

注意:這里config文件的路徑要加雙引號(hào)("),否則會(huì)一直提示找不到文件

使用用戶(hù)管理員登錄數(shù)據(jù)庫(kù)

在連接期間進(jìn)行身份驗(yàn)證

mongo --port 27017 -u "登錄名" -p "密碼" --authenticationDatabase "數(shù)據(jù)庫(kù)名"

如果驗(yàn)證失敗會(huì)在命令行打印如下信息

mongodb開(kāi)啟身份認(rèn)證的方法

連接成功之后再認(rèn)證
#連接
mongo --port 27017
#進(jìn)入admin數(shù)據(jù)庫(kù)
use admin
#在admin數(shù)據(jù)庫(kù)中認(rèn)證
db.auth('用戶(hù)管理員名稱(chēng)','密碼')

mongodb開(kāi)啟身份認(rèn)證的方法

驗(yàn)證成功打印1,失敗打印0.

使用用戶(hù)管理員創(chuàng)建其他用戶(hù),細(xì)化管理。

給某個(gè)數(shù)據(jù)創(chuàng)建具有讀權(quán)限的用戶(hù)

#給test數(shù)據(jù)庫(kù)添加
db.createUser({
    user:"readUser",
    pwd:'123qwezxc',
    roles:[
        {
            role:"read",
            db:"test"
        }
    ]
})

創(chuàng)建具有讀寫(xiě)權(quán)限的用戶(hù)

db.createUser({
    user:"readWriteUser",
    pwd:'123qwezxc',
    roles:[
        {
            role:"readWrite",
            db:"test"
        }
    ]
})

創(chuàng)建具有數(shù)據(jù)備份權(quán)限的用戶(hù)(只能在admin數(shù)據(jù)庫(kù)中添加)

db.createUser({
    user:"backupUser",
    pwd:'123qwezxc',
    roles:[
        {
            role:"backup",
            db:"admin"
        }
    ]
})

注意:db只能指定admin,因?yàn)閎ackup和restore角色都在admin數(shù)據(jù)據(jù)庫(kù)中

創(chuàng)建具有數(shù)據(jù)備份權(quán)限的用戶(hù)(只能在admin數(shù)據(jù)庫(kù)中添加)

db.createUser({
    user:"restoreUser",
    pwd:'123qwezxc',
    roles:[
        {
            role:"restore",
            db:"admin"
        }
    ]
})

mongodb系統(tǒng)內(nèi)置了很多角色,這里就不一一列舉了,可以查看mognodb內(nèi)置角色,創(chuàng)建符合自己需求的用戶(hù)。

以上是mongodb開(kāi)啟身份認(rèn)證的方法的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI