赞
踩
如果是开启状态,先关闭路由,再关闭配置服务,最后关闭分片数据复本集中的每个mongod,从次节点开始。直到副本集的所 有成员都离线,包括任何仲裁者。主节点必须是最后一个成员关闭以避免潜在的回滚.最好通过 db.shutdownServer() 关闭数据库,防止后续启动时报错
//shutdown must run from localhost when running db without auth
//客户端登录服务,注意,这里通过localhost登录,如果需要远程登录,必须先登录认证才行。
mongo --port 27017
//#切换到admin库
use admin
//关闭服务
db.shutdownServer()
(在开启认证前,需要先创建超管用户)
use admin
db.createUser({user:"myroot",pwd:"123456",roles:["root"]})
副本集和共享集群的各个节点成员之间使用内部身份验证,可以使用密钥文件或x.509证书
openssl rand -base64 150 > ./mongo.keyfile
# 赋予证书读权限
chmod 400 mongo.keyfile
复制完成后,记得修改文件权限
# 赋予证书读权限
chmod 400 mongo.keyfile
分片数据副本集和配置服务副本集上增加的配置
vim /use/local/mongodb/configs/mongodb.conf
security:
#KeyFile鉴权文件
keyFile: /use/local/mongodb/configs/mongo.keyfile
#开启认证方式运行
authorization: enabled
路由服务上增加的配置,路由服务不需要配置security.authorization
security:
#KeyFile鉴权文件
keyFile: /use/local/mongodb/configs/mongo.keyfile
cd /use/local/mongodb
# 分片数据副本集和配置服务副本集
bin/mongod -f configs/mongodb.conf
# 路由服务
bin/mongos -f configs/mongodb.conf
tip:
通过完善副本间认证后,启动服务,即可通过密码进行登录了
mongodb://路由1:端口,路由2:端口
MongoServerError: Command hostInfo requires authentication
mongodb://myroot:123456@路由1:端口,路由2:端口
spring:
data:
mongodb:
# uri: ${MONGODB_URI:mongodb://${账号}:${密码}@路由1:端口,路由2:端口/${连接的库}?authSource=${校验认证信息的库}}
uri: ${MONGODB_URI:mongodb://root:123456@192.168.2.18:27017,192.168.2.19:27017/db_test?authSource=admin}
通过直接连接mongos
# use ${目标db}
use test
db.stats()
count数可能不一致
详细字段请参看官网dbstat
角色 | 权限 |
---|---|
read | 查询本库的权限 |
readWrite | 增删改查本库的权限 |
dbAdmin | 数据库对象的管理操作,但没有数据库的读写权限 |
userAdmin | 在本库下创建用户的权限 |
dbOwner | 本库所有操作的权限 |
readAnyDatabase | 查询本实例所有库的权限 |
readWriteAnyDatabase | 增删改查本实例所有库的权限 |
userAdminAnyDatabase | 在本实例所有库下创建用户的权限 |
dbAdminAnyDatabase | 本实例所有库的dbAdmin权限 |
hostManager | 数据库对象的管理操作,但没有数据库的读写权限 |
clusterMonitor | 查询集群和复制集的权限 |
clusterManager | 管理和监控集群和复制集的权限 |
clusterAdmin | 集群所有操作的权限 |
backup | 查询本实例所有库的权限 |
restore | 增删改查本实例所有库的权限 |
root | 超级用户权限 |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。