一、添加用户
切换到admin数据库对用户的添加
use admin;
db.createUser(userDocument):用于创建 MongoDB 登录用户以及分配权限的方法
db.createUser(
{
user: "账号",
pwd: "密码",
roles: [
{ role: "角色", db: "安全认证的数据库" },
{ role: "角色", db: "安全认证的数据库" }
]
}
)
二、单机认证
要使用安全认证必须添加超级用户,以及针对某个库的用户
- 创建管理员
- 创建普通用户
- MongoDB 安全认证方式启动
mongod --dbpath=数据库路径 --port=端口 --auth
也可以在配置文件中 加入 auth=true
三、分片集群安全认证
1 开启安全认证之前 进入路由创建管理员和普通用户
2 关闭所有的配置节点 分片节点 和 路由节点
安装psmisc
yum install psmisc
安装完之后可以使用killall 命令 快速关闭多个进程
killall mongod
3 生成密钥文件 并修改权限
openssl rand -base64 756 > data/mongodb/testKeyFile.file
chmod 600 data/mongodb/keyfile/testKeyFile.file
4 配置节点集群和分片节点集群开启安全认证和指定密钥文件
auth=true
keyFile=data/mongodb/testKeyFile.file
5在路由配置文件中 设置密钥文件
keyFile=data/mongodb/testKeyFile.file
6 启动所有的配置节点 分片节点 和 路由节点 使用路由进行权限验证
可以编写一个shell 脚本 批量启动
./bin/mongod -f config/config-17017.conf
./bin/mongod -f config/config-17018.conf
./bin/mongod -f config/config-17019.conf
./bin/mongod -f shard/shard1/shard1-37017.conf
./bin/mongod -f shard/shard1/shard1-37018.conf
./bin/mongod -f shard/shard1/shard1-37019.conf
./bin/mongod -f shard/shard2/shard2-47017.conf
./bin/mongod -f shard/shard2/shard2-47018.conf
./bin/mongod -f shard/shard2/shard2-47019.conf
./bin/mongos -f route/route-27017.conf
7 Spring boot 连接安全认证的分片集群
spring.data.mongodb.username=账号
spring.data.mongodb.password=密码
#spring.data.mongodb.uri=mongodb://账号:密码@IP:端口/数据库名
8 当我们开启认证后,要想单独查询每个分片集群的数据,就必须为其创建账号