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