mongodb集群用户管理

用户分类

      mongos用户管理

      shard1用户管理

      shard2用户管理

      shard3用户管理

     这里的4类用户都是需要单独创建的,不能混用。但是可以把用户名和密码设置成相同

数据库权限

     用户不仅分类,而且还必须在指定的数据库下创建用户账号,在use dbname下创建的用户只对dbname数据库享有对应的权限.对db2数据库依然没有权限

创建用户

      mongodb默认启动的时候没有认证授权,这个时候可以随意添加用户和权限

      

      

   后期添加管理用户

           由于生产环境已经添加了认证配置,这个时候就不能直接添加用户了

# BEGIN ANSIBLE MANAGED BLOCK
#配置文件内容
#???????????????
pidfilepath = /data/tianyiyun/shard1/log/shard1.pid
dbpath = /data/tianyiyun/shard1/data
logpath = /var/log/mongodb/shard1.log
logappend = true

bind_ip = 0.0.0.0
port = 20001
fork = false

#副本集名称
replSet = shard1

#declare this is a shard db of a cluster
shardsvr = true

#设置最大连接数
maxConns = 8000
# END ANSIBLE MANAGED BLOCK

auth=true
keyFile=/data/tianyiyun/conf/keyFile.key
shard1.conf生产配置

             先修改配置文件,使mongodb服务暂时去掉认证机制再登录mongoshell创建管理用户才行

# BEGIN ANSIBLE MANAGED BLOCK
#配置文件内容
#——————————————–
pidfilepath = /data/tianyiyun/shard1/log/shard1.pid
dbpath = /data/tianyiyun/shard1/data
logpath = /var/log/mongodb/shard1.log
logappend = true

bind_ip = 0.0.0.0
port = 20001
fork = false

#副本集名称
#replSet = shard1

#declare this is a shard db of a cluster
#shardsvr = true

#设置最大连接数
#maxConns = 8000
# END ANSIBLE MANAGED BLOCK

#auth=true
#keyFile=/data/tianyiyun/conf/keyFile.key
shard1.conf注释掉认证

     每个分片节点都要创建用户,mongos节点选择其中一个节点创建即可
     /data/tianyiyun/mongodb/bin/mongod -f /data/tianyiyun/conf/shard1.conf --noauth

     根据连接端口的不同选择登录mongos或者shard的mongoshell

     /data/mongodb-linux-x86_64-rhel70-4.0.28/bin/mongo --port 27017

    登录mongoshell后选择给不同的数据库创建管理用户

   给mydb数据库创建管理用户
   use mydb #use哪个数据库就是给哪个数据库创建管理用户,创建管理用户后才能在相应的数据库中执行db.runadminCommand()    否则执行管理员命令的时候一直报认证错误

    db.createUser({
     user:"mydb",
     pwd:"123456",
     roles: [ { role: "dbOwner",db:"mydb"}]
   })

   db.auth("mydb","123456")

   use admin
   db.createUser({
     user:"admin",
     pwd:"123456",
     roles: [ { role: "root",db:"admin"}]
  })

posted @ 2025-06-10 09:23  不懂123  阅读(15)  评论(0)    收藏  举报