漳州北京网站建设公司,郯城建设银行网站,wordpress菜单背景6,wordpress没有上级目录的写权限本文主要基于已经搭建好的未认证集群#xff0c;结合上篇Mongodb副本集分片集群模式环境部署#xff08;https://www.cnblogs.com/woxingwoxue/p/9875878.html#xff09;#xff0c; MongoDb分片集群认证几个主要流程1.在分片集群环境中#xff0c;副本集内成员之间需要用…本文主要基于已经搭建好的未认证集群结合上篇Mongodb副本集分片集群模式环境部署https://www.cnblogs.com/woxingwoxue/p/9875878.html MongoDb分片集群认证几个主要流程1.在分片集群环境中副本集内成员之间需要用keyFile认证mongos与配置服务器副本集之间也要keyFile认证集群所有mongod和mongos实例使用内容相同的keyFile文件1在其中一台机器上生成keyfile openssl rand -base64 753 keyfile
sudo chmod 400 keyfile 2将keyfile放置在path-to-keyfilie路径2.建立管理员账号赋所有权限admin和config数据库 use admin
db.createUser({user: admin,pwd: 123456,roles: [ { role: root, db: admin } ]}) #root所有权限
db.auth(admin,123456)use config
db.createUser({user: admin,pwd: 123456,roles: [ { role: root, db: admin } ]}) #root所有权限
db.auth(admin,123456) 3.关闭所有mongod、mongos、configsvr编辑配置文件重新启动每台服务器每个实例为每一个mongod、mongos、配置服务器的实例其中的配置文件添加认证属性或者在启动实例时添加--authorization、--keyFile选项 [mongomongo3 ~]$ vi services/configsvr/mongod.conf #mongod.conf 添加以下配置
security:authorization: enabled #若启动实例报错可删除该行keyFile: /home/mongo/services/keyfile [mongomongo3 ~]$ ./mongod -f services/configsvr/mongod.conf 其他实例如下 [mongomongo3 ~]$ vi services/shard1/mongod.conf#mongod.conf 添加以下配置
security:authorization: enabled #若启动实例报错可删除该行keyFile: /home/mongo/services/keyfile[mongomongo3 ~]$ ./mongod -f services/shard1/mongod.conf[mongomongo1 ~]$ vi services/shard2/mongod.conf#mongod.conf 添加以下配置
security:authorization: enabled #若启动实例报错可删除该行keyFile: /home/mongo/services/keyfile[mongomongo1 ~]$ ./mongod -f services/shard2/mongod.conf[mongomongo1 ~]$ vi services/shard3/mongod.conf#mongod.conf 添加以下配置
security:authorization: enabled #若启动实例报错可删除该行keyFile: /home/mongo/services/keyfile[mongomongo1 ~]$ ./mongod -f services/shard3/mongod.conf[mongomongo2 ~]$ vi services/mongos/mongos.conf#mongod.conf 添加以下配置
security:authorization: enabled #若启动实例报错可删除该行keyFile: /home/mongo/services/keyfile[mongomongo2 ~]$ ./mongos -f services/mongos/mongos.conf 4.admin连接mongo集群 [mongomongo3 ~]$ ./mongo 172.16.0.192:27017/admin -u admin -p 123456 5.为指定数据库添加访问用户本文为testShard数据库 use testShard
db.createUser({user:test,pwd:test,roles:[{role:readWrite, db:testShard} #读写权限]}
)
db.auth(test,test) 6.test访问mongo集群只有testShard的数据读写权限 [mongomongo3 ~]$ ./mongo 172.16.0.192:27017/testShard -u test -p test
MongoDB shell version v4.0.3
connecting to: mongodb://172.16.0.192:27017/testShard
Implicit session: session { id : UUID(e0f8bf3f-83d7-432c-ba4c-c063d865380e) }
MongoDB server version: 4.0.3 用户和角色方法详细参见官方文档: https://docs.mongodb.com/manual/reference/method/#role-management查看角色信息use admindb.getRole(rolename,{showPrivileges:true})删除角色use admindb.dropRole(rolename)系统内置用户角色大部分内置的角色对所有数据库共用少部分仅对admin生效数据库用户类read 非系统集合有查询权限readWrite 非系统集合有查询和修改权限数据库管理类dbAdmin 数据库管理相关比如索引管理schema管理统计收集等不包括用户和角色管理dbOwner 提供数据库管理读写权限用户和角色管理相关功能userAdmin 提供数据库用户和角色管理相关功能集群管理类clusterAdmin 提供最大集群管理权限clusterManager 提供集群管理和监控权限clusterMonitor 提供对监控工具只读权限hostManager 提供监控和管理severs权限备份和恢复类backup 提供数据库备份权限restore 提供数据恢复权限All-Database类readAnyDatabase 提供读取所有数据库的权限除了local和config数据库之外readWriteAnyDatabase 和readAnyDatabase一样除了增加了写权限userAdminAnyDatabase 管理用户所有数据库权限单个数据库权限和userAdmin角色一样dbAdminAnyDatabase 提供所有用户管理权限除了local,config超级用户类root 数据库所有权限内部角色__system 提供数据库所有对象任何操作的权限不能分配给用户非常危险转载于:https://www.cnblogs.com/woxingwoxue/p/9888897.html