mongodb用戶認(rèn)證問題

背景:項目連接mongodb-分片集群出現(xiàn)寫入數(shù)據(jù)時,報認(rèn)證失敗,目前mongodb的版本是3.6.2

1、? 用戶驗證方式更改:

Mongodb2.6的默認(rèn)用戶驗證方式是:MONGODB-CR

Mongodb3.0的默認(rèn)用戶驗證方式是:SCRAM-SHA-1

因為新的驗證方式在spring和java中還有一些問題,因此現(xiàn)在項目中3.0的數(shù)據(jù)庫依舊使用之前的驗證方式。

2.目前mongodb是分片集群并建立認(rèn)證機制,目前需要將配置文件中認(rèn)證keyFile文件注釋掉,重啟mongodb服務(wù)。

3.把3.0的用戶驗證改為MONGODB-CR,過程如下:

(1)分別對mongos、shard1主節(jié)點、shard2主節(jié)點、shard3主節(jié)點進(jìn)行操作

(2)查看版本:?db.system.version.find();

? ? ? ? ?查看用戶:db.system.users.find();

版本和用戶截圖

用戶主要關(guān)注:credentials: SCRAM-SHA-1

版本主要關(guān)于:currentVersion=5

(3)刪除root和educloud用戶

use admin

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

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

(4)更改用戶驗證方式:

? use admin

?var schema = db.system.version.findOne({"_id" : "authSchema"})

schema.currentVersion = 3

db.system.version.save(schema)

(5)再次創(chuàng)建一個新的用戶:

use amin

db.createUser({"user":"root","pwd":"root111","roles":["root"]})

use educloud

db.createUser({"user":"educloud","pwd":"educloud111","roles":["dbOwner"]})

(6)再次查看版本:?db.system.version.find();

? ? ? ? ?查看用戶:db.system.users.find();

新版本用戶認(rèn)證

用戶主要關(guān)注:credentials: MonGODB-CR

版本主要關(guān)于:currentVersion=3

(7)修改配置文件中認(rèn)證keyFile文件注釋去掉,重啟mongodb服務(wù)

(8)登錄mongos、mongos、shard1主節(jié)點、shard2主節(jié)點、shard3主節(jié)點查看用戶認(rèn)證和版本。

用戶主要關(guān)注:credentials: MonGODB-CR

版本主要關(guān)于:currentVersion=3

備注:

如果是新mongodb,在修改用戶認(rèn)證的話,需要先創(chuàng)建用戶,之后再修改更改用戶驗證方式,再刪除用戶,最后再重新建用戶,查看確認(rèn)用戶認(rèn)證機制。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容