mongod 验证配置指南(十二)

一. 前言 最近公司加强安全,mongodb数据要启用验证,顺道总结下了。默认情况下,mongodb不启用验证的。数据库级别的权限,要么可读写要么只读权限。mongod的验证配置比较操蛋。分两种情形:一种是单服务器,只需启动时添加--auth参数即可。 另一种是复制集、分片集群服务器,必须指定keyfile参数,其他节点之间的通讯基于该keyfile。在这种情况下,--auth参数是隐含启用的,所有的mongodb访问都必须验证的。 二. 单服务器模式 添加管理员用户,admin库下的用户是全局用户,对所有的数据库可读写。
# ./mongo
> use admin
> db.addUser("root","www.ttlsa.com")
> db.auth("root","www.ttlsa.com")
创建普通的用户,是数据库级别的。
> use database_name
> db.addUser('guest','www.ttlsa.com') 可读写
> db.addUser('guest','www.ttlsa.com',true) 只可读
查看用户
> db.system.users.find()
删除用户
> db.removeUser(username)
或
> db.system.users.remove( { user: username } )
配置文件加上下面的参数后重新启动mongod实例
auth = ture
三. 复制集与分片集群模式下 3.1 keyfile规则 1. 集群服务器之间通讯通过keyfile进行身份验证。 2. 每个实例的keyfile文件内容要一致。 3. keyfile文件权限仅当前用户可读。 4. 集群成员都需要指定--keyFile参数。 5. 每个客户端连接到数据库之前必须验证。 6. key长度必须在6到1024个字符之间,否则会报错,mongod起不起来。 7. 任何空格被忽略。 8. key不能包含非法字符=,否则会报错,mongod起不起来。 3.2 创建一个keyfile
# openssl rand -base64 513 > keyfile
最好是3的倍数,否则会含有非法字符=。 3.3 修改keyfile权限
# chown mongod.mongod keyfile
# chmod 600 keyfile
3.4 创建一个管理账号 在启用--keyFIle后,连接数据库都必须要验证的。
> use admin
> db.addUser("root","www.ttlsa.com")
> db.auth("root","www.ttlsa.com")
3.5 启用--keyFile 修改mongod.conf文件,添加下面这项
keyFile = /path/to/keyfile
3.6 重新启动mongod
# ./mongod --config mongod.conf
创建普通用户与单机模式下验证一样的。 如需转载请注明出处:http://www.ttlsa.com/html/2707.html

转载于:https://my.oschina.net/766/blog/211360

猜你喜欢

转载自blog.csdn.net/weixin_34310369/article/details/91546621