开启验证
需要在mongod.conf需要开启认证
- 在启动的时候需要加入–auth开启认证
# 1在启动的时候需要加入--auth开启认证
mongod -f /etc/mongod.conf --auth
- 配置文件里配置
security:
#开启授权认证
authorization: enabled
创建用户:
db.createUser({user:"myroot",pwd:"123456",roles:[ { "role" : "root", "db" : "admin" } ]})
# 解释: 给用户名为myroot的用户设定密码为123456,角色是root,本权限只在admin库里面有用。
----------------------------------------------------------------------------
# 删除用户
db.dropUser("myadmin")
# 查看用户
db.system.users.find()
# 修改密码
db.changeUserPassword("myroot", "123456")
-----------------------------------------------------------------------------
# 切换到admin
use admin
# 验证
db.auth("myroot","123456")
# 创建普通用户
db.createUser({user: "xiaohua", pwd: "123456", roles: [{ role: "readWrite", db: "articledb" }]})
解释:给xiaohua用户设定密码为123456,用户权限为读和写,权限所在的数据库为articledb
注意这里:xioahua必须交进入到articledb下面才能验证。
springboot的验证配置
spring:
#数据源配置
data:
mongodb:
# 主机地址 #
host: 180.76.159.126
# 数据库 #
database: articledb
# 默认端口是27017 #
port: 27017
#帐号
# username: bobo
#密码
# password: 123456
#单机有认证的情况下,也使用字符串连接
uri: mongodb://bobo:123456@180.76.159.126:27017/articledb
集群情况下需要使用keyfile了
通过OpenSSL进行证书生成
openssl rand -base64 90 -out ./mongo.keyfile
# 限制文件的读写权限 注意 必须要有读的权限,不然不能进行验证
chmod 400 ./mongo.keyfile
将文件放置项目中,可以放在conf下,同一个机器中使用一个keyfile就行。
# 放在27017下
cp mongo.keyfile /mongodb/replica_sets/myrs_27017
在配置文件中加入安全验证
security:
#KeyFile鉴权文件
keyFile: /mongodb/replica_sets/myrs_27017/mongo.keyfile
#开启认证方式运行
authorization: enabled
这样集群间的权限就配置好了,然后进入主节点生成用户即可。