1. 程式人生 > 其它 >mongo資料庫分片副本集增加訪問控制

mongo資料庫分片副本集增加訪問控制

1、生成金鑰檔案

openssl rand -base64 756 > /data/mongodb/testKeyFile.file
chmod 400 /data/mongodb/keyfile/testKeyFile.file

2、將金鑰複製到叢集中的每臺機器的指定位置

如:scp  /data/mongodb/testKeyFile.file [email protected]:/data/mongodb

3、預先建立好一個管理員賬號和密碼然後將叢集中的所有mongod和mongos全部關閉

連線任意一臺機器的mongos

mongo --port 20000

新增使用者

use admin //注意一定要使用admin資料庫
db.createUser(
{
user:"root",
pwd:"123456",
roles:[{role:"root",db:"admin"}]
}
)

然後依次連線到每一臺機器上執行。

killall mongod

killall mongos

4、使用訪問控制強制重新啟動複製集的每個成員

4.1依次在每臺機器上的mongod(注意是所有的mongod不是mongos)的配置檔案中加入下面一段配置。如我在10.12.40.83上的config server,shard1,shard2,shard3都加入下面的配置檔案
security:
keyFile: /data/mongodb/testKeyFile.file
authorization: enabled


或者

keyFile= /data/mongodb/testKeyFile.file


4.2依次在每臺機器上的mongos配置檔案中加入下面一段配置。如我在10.12.40.83上的mongos配置檔案中加入上面的一段配置

security:
keyFile: /data/mongodb/testKeyFile.file

或者

keyFile= /data/mongodb/testKeyFile.file

 

4.3重啟每個mongo示例。因為我的認證配置在了配置檔案裡面,所以啟動命令不需要再加認證的引數 (例如--auth等)

mongod -f /data/mongodb/config/configs.config
mongod -f /data/mongodb/config/shard1.config
mongod -f /data/mongodb/config/shard2.config
mongod -f /data/mongodb/config/shard3.config
mongos -f /data/mongodb/config/mongos.config

依次重啟三臺機器的mongod和mongos例項

5、連線mongodb叢集
如果用mongo sell指令碼連線

mongo --port 20000
use admin
db.auth("root","123456")
如果返回1表示連線成功,然後你就可以訪問自己的資料庫啦~!如use testDB


如果使用mongodb連線工具。我用的是Robo3T。在連線的時候選擇使用authentization

————————————————
版權宣告:本文為CSDN博主「大偉愛自由」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處連結及本宣告。
原文連結:https://blog.csdn.net/uncle_david/article/details/78713551