邓开表同学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:”mongodb@MONGODB.COM”,
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/other@MONGODB.COM认证生成的keytab文件。
启动成功!
5
5、使用认证连接mongo shell
mongo --host other--authenticationMechanism=GSSAPI --authenticationDatabase=’$external’--username mongodb@MONGODB.COM
mongo shell的认证连接成功!
测试用户mongodb@MONGODB.COM,执行以下语句:
use bigdata
show collections
use admin
show collections
由于在bigdata数据库下,mongodb@MONGODB.COM用户具有读权限,showcollections可以通过;当转换到admin数据库下时,则提示没有认证!
加入技术讨论群
为了方便大家相互交流学习,社区群人数已经2500+,欢迎大家加下面助手微信,拉大家进群,自由交流。
喜欢QQ群的,可以扫描下面二维码:
欢迎大家通过二维码打赏支持技术社区(英雄请留名,社区感谢您,打赏次数超过50+):