MongoDB自學記錄【四】----->mongodb分片集群添加用戶權限

MongoDB默認是沒有用戶權限驗證的,所以我們需要手動去添加用戶,以便可以更加安全的進行訪問,在沒添加用戶驗證之前,通過mongos進入數據庫時會有如下的警告:

image.png

4.1 首先建立一個擁有添加刪除用戶權限的賬號

db.createUser({
 user:"useradmin",
 pwd:"123456",
 roles: [ { role: "userAdminAnyDatabase",db:"admin"}]
}) 


db.auth("useradmin","123456")//認證該用戶

這里就添加了一個useradmin這么一個用戶,他可以進行所有數據庫的用戶管理。在添加這個用戶后,我們連接mongodb時仍然不需要進行登錄,這是因為我們未在配置中開啟權限驗證。

4.2.開啟分片集群的權限驗證

4.2.1 首先生成一個添加keyFile文件----->用于認證使用

一個合理的keyFile應該滿足下面的條件:

1.在分片集群環(huán)境中,副本集內成員之間需要用keyFile認證,mongos與配置服務器,副本集之間也要keyFile認證,集群所有mongod和mongos實例使用內容相同的keyFile文件。
2.進行初始化,修改副本集時,都從本地例外登錄進行操作
3.由于啟用了認證,需要建立一個管理員帳號,才能從遠程登錄。建立管理員帳戶,利用管理員賬戶從遠程登錄后,需要建立一個可以操作某個數據庫的用戶,客戶端就用這個用戶訪問數據庫。
4.分片集群中的管理員帳號需要具備配置服務器中admin和config數據庫的讀寫權限,才能進行分片相關操作
5.集群中每個分片有自己的admin數據庫,存儲了集群的各自的證書和訪問權限。如果需要單獨遠程登錄分片,也可以

openssl rand -base64 753

利用上述命令就可以生成一個滿足條件的keyFile(如下圖),然后將生成的code拷入到keyFile.key中:

cat  /usr/local/mongodb/key/keyFile.key

#然后要給該文件限定權限,必須是600
chmod 600  /usr/local/mongodb/key/keyFile.key
image.png

4.2.2 在各個分片以及configserver的配置文件中加上如下語句

#開啟權限驗證
auth=true
keyFile=/usr/local/mongodb/key/keyFile.key

4.2.3 在mongos配置文件中添加如下語句:

#指向keyFile
keyFile=/usr/local/mongodb/key/keyFile.key

4.3 啟動程序

首先啟動各個服務器中configserver

sudo mongod -f config.conf

然后啟動各個分片

sudo mongod -f shard1.conf
sudo mongod -f shard2.conf
sudo mongod -f shard3.conf

最后啟動mongos

sudo mongos -f mongos.conf

4.4.利用新組建賬號登錄集群

mongo ip:port/testdb -u username -p password

可以看到已經沒有之前出現的警告了

image.png

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

相關閱讀更多精彩內容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發(fā)現,斷路器,智...
    卡卡羅2017閱讀 136,639評論 19 139
  • 我侄兒: 2017年十一月二十五號,農歷十月初八。爺爺奶奶出車禍了,爺爺過世。 匆匆忙忙趕回來還是沒能見到你最后的...
    秦雍永昌閱讀 376評論 0 0
  • 和孩子玩的時候,徹底的無憂無慮和開心,能量滿滿的,今天飯后散步邊走邊玩,很開心。感恩我的可愛寶貝!
    零貳O2閱讀 270評論 0 0
  • 當你把決定權交到他人手上時,就必須接受最后的結果,這種不受控制的感覺是可悲的!所以絕對不能再次無能為力的讓這...
    淺夏MJ閱讀 158評論 0 0

友情鏈接更多精彩內容