首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Mongo认证授权

Mongo认证授权

作者头像
用户11690639
发布2026-06-17 21:57:56
发布2026-06-17 21:57:56
850
举报

创建用户

代码语言:javascript
复制
use admin
db.createUser(
  {
    user: "admin",
    pwd: "admin",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)
2、
use test
db.createUser(
  {
    user: "test",
    pwd: "test",
    roles: [ { role: "readWrite", db: "test" }]
  }
)
3.查看权限
Use admin 
db.createUser(
  {
    user: "local",
    pwd: "local",
    roles: [ { role: "read", db: "local" }]
  }
)

创建角色

代码语言:javascript
复制
收回权限
db.revokeRolesFromUser(
    "reportsUser",
    [
      { role: "readWrite", db: "accounts" }
    ]
)
授权
db.grantRolesToUser(
    "reportsUser",
    [
      { role: "read", db: "accounts" }
    ]
)

创建ADMIN用户

代码语言:javascript
复制
创建admin用户
admin = db.getSiblingDB("admin")
admin.createUser(
  {
    user: "admin",
    pwd: "admin",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)
db.grantRolesToUser('admin', [{role:'clusterAdmin',db:'admin'}])

关闭数据库
use admin
db.shutdownServer()

登录到primary
db.getSiblingDB("admin").auth("admin", "admin" )
创建用户
db.getSiblingDB("admin").createUser(
  {
    "user" : "clusterAdmin",
    "pwd" : "clusterAdmin",
    roles: [ { "role" : "clusterAdmin", "db" : "admin" } ]
  }
)

修改密码

代码语言:javascript
复制
db.changeUserPassword('password','newPassword');  

授权数据库

代码语言:javascript
复制
db.getSiblingDB("dbname").auth("db", "password" )

查看用户及角色

代码语言:javascript
复制
查看当前数据库用户
db.system.users.find();
Db.getUsers();
Db.getUser(‘admin’);
查看用户的权限
db.getUser("reportsUser")
查看角色授予的用户
db.getRole( "readWrite", { showPrivileges: true } )

删除用户

代码语言:javascript
复制
db.dropUser(‘admin’)

重建ADMIN用户

代码语言:javascript
复制
不小心把admin用户删除了,重新admin用户无法创建,报错为:
Error: couldn't add user: not authorized on admin to execute command 。。。.
如何重新报建admin用户呢?
思路:
A: 在mongodb.conf中注释掉security认证部分
B: 重启MONGO
C:创建用户 admin
D:修改配置文件打开security认证部分且重新启动

主从DB上注释安全认证部分

代码语言:javascript
复制
1) vi /etc/mongod.conf
注释下面的内容
#security:
# clusterAuthMode: keyFile
# keyFile: /data/mongodb/key/repl_set.key
# authorization: enabled

重新启动Mongo

代码语言:javascript
复制
systemctl restart mongod.service

Master上创建用户

代码语言:javascript
复制
use admin
db.system.users.find()
db.dropUser("admin")
db.system.users.remove({user:"admin"}) 
db.createUser({user:"userName",pwd:"password",roles:["readWrite"]})
db.grantRolesToUser("admin",[{ role: "clusterAdmin", db: "admin" }]);
db.grantRolesToUser("admin",[{ role: "userAdminAnyDatabase", db: "admin" }]);
db.grantRolesToUser("admin",[{ role: "root", db: "admin" }]);

在主和从 mongo DB servers上打开注释

代码语言:javascript
复制
vi /etc/mongod.conf
//打开下面的内容
security:
 clusterAuthMode: keyFile
 keyFile: /data/mongodb/key/repl_set.key
 authorization: enabled

重新启动

代码语言:javascript
复制
systemctl restart mongod
启动后可以按如下进行数据库授权访问了
> use admin
> db.auth("userName","password")

如果允许slave 读操作,则在slave上执行 rs.slaveOk(); 就OK 
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2026-06-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 创建用户
  • 创建角色
  • 创建ADMIN用户
  • 修改密码
  • 授权数据库
  • 查看用户及角色
  • 删除用户
  • 重建ADMIN用户
    • 主从DB上注释安全认证部分
    • 重新启动Mongo
    • Master上创建用户
    • 在主和从 mongo DB servers上打开注释
    • 重新启动
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档