MongoDB系列文章,本文主要講訴MongoDB的Kerberos配置實戰。MongoDB Enterprise版本支援Kerberos服務認證。Kerberos是大型用戶端/伺服器系統的行業标準認證協定。上一篇文章是:
MongoDB Compass--MongoDB DBA必備的管理工具
1
1、環境準備
需要事先在機器上安裝MongoDB Enterprise版本和Kerberos,在這裡安裝的是MongoDB Enterprise 3.6.2和Kerberos 1.10.
2
2、啟動mongod服務,并連接配接到mongoshell。

3
3、在$external資料庫下(注意:必須在$external資料庫,否則添加使用者必須pwd密碼鍵),建立一個使用者(這裡的使用者需要是Kerberos的一個賬戶)并配置設定bigdata資料庫“讀”的權限。
use $external
db.createUser(
{
user:”[email protected]”,
roles:[{role:”read”,db:”bigdata”}]
}
)
4
4、配置mongod服務支援Kerberos認證
4.1
4.1、編輯修改MongoDB配置檔案/etc/mongd.conf
vi /etc/mongod.conf
添加以下内容:
security:
authorization: enabled
setParameter:
authenticationMechanisms: GSSAPI
4.2
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
5、使用認證連接配接mongo shell
mongo --host other--authenticationMechanism=GSSAPI --authenticationDatabase=’$external’--username [email protected]
mongo shell的認證連接配接成功!
測試使用者[email protected],執行以下語句:
use bigdata
show collections
use admin
由于在bigdata資料庫下,[email protected]使用者具有讀權限,showcollections可以通過;當轉換到admin資料庫下時,則提示沒有認證!