鄧開表同學MongoDB系列文章,本文主要講訴MongoDB的Kerberos配置實戰。MongoDB Enterprise版本支持Kerberos服務認證。Kerberos是大型客戶端/服務器系統的行業標準認證協議。上一篇文章是:
MongoDB Compass--MongoDB DBA必備的管理工具
1、環境準備
需要事先在機器上安裝MongoDB Enterprise版本和Kerberos,在這裡安裝的是MongoDB Enterprise 3.6.2和Kerberos 1.10.
2、啟動mongod服務,並連接到mongoshell。
3、在$external數據庫下(注意:必須在$external數據庫,否則添加用戶必須pwd密碼鍵),創建一個用戶(這裡的用戶需要是Kerberos的一個賬戶)並分配bigdata數據庫“讀”的權限。
use $external
db.createUser(
{
user:”[email protected]”,
roles:[{role:”read”,db:”bigdata”}]
}
)
4、配置mongod服務支持Kerberos認證
4.1、編輯修改MongoDB配置文件/etc/mongd.conf
vi /etc/mongod.conf
添加以下內容:
security:
authorization: enabled
setParameter:
authenticationMechanisms: GSSAPI
4.2 設置mongod服務支持Kerberos認證
由於這裡安裝MongoDB Enterprise是採用rpm包安裝,mongod服務默認在/etc/sysconfig/mongod
執行以下語句:
env KRB5_KTNAME=/usr/local/mongodb.keytab \
/usr/bin/mongod --config /etc/mongod.conf
這裡的mongodb.keytab文件是已經在kerberos上對mongodb/[email protected]認證生成的keytab文件。
啟動成功!
5、使用認證連接mongo shell
mongo --host other--authenticationMechanism=GSSAPI --authenticationDatabase=’$external’--username [email protected]
mongo shell的認證連接成功!
測試用戶[email protected],執行以下語句:
use bigdata
show collections
use admin
show collections
由於在bigdata數據庫下,[email protected]用戶具有讀權限,showcollections可以通過;當轉換到admin數據庫下時,則提示沒有認證!
閱讀更多 大數據和雲計算技術 的文章