在mongodb5.0.11版本中创建用户和授权

 

目录

处理原因:

1、设定mongodb的环境变量

2、登录mongodb

3、使用admin库

4、创建 mongouser用户

5、更新 mongouser 可使用的库

6、创建 mongouser角色授权

7、更新root账号也可以使用 mongouser角色

8、重启服务

9、mongo命令 可能在高版本中无法使用,就使用mongosh


处理原因:

在MongoDB中,root角色是预定义的,用于授予对整个数据库系统的管理权限,包括所有数据库和集合的操作。你不能创建或修改这个角色,只能赋予权限给已存在的root角色。
如果你的目标是创建一个新的管理员角色,你应该选择一个不同的名称。例如,你可以创建一个自定义的管理员角色,如mongouser,并赋予它你需要的权限。下面是一个示例

1、设定mongodb的环境变量

export PATH=/usr/local/mongodb-5.0.11/mongodb-linux-x86_64-rhel70-5.0.11/bin:$PATH

2、登录mongodb

mongo --username root --password yourpassword --authenticationDatabase admin

3、使用admin库

use admin

4、创建 mongouser用户

db.runCommand({
...     createUser: "mongouser",
...     pwd: "yourpassword", 
...     roles: [ { role: "readWrite", db: "ep_mongo" }, { role: "readWrite", db: "ep_mongo_test" }],
...     mechanisms: [ "SCRAM-SHA-1" ]
... })
{ "ok" : 1 }

5、更新 mongouser 可使用的库

db.runCommand({
...     updateUser: "mongouser", 
...     roles: [{ role: "root", db: "admin" }, { role: "readWrite", db: "ep_mongo" }, { role: "readWrite", db: "ep_mongo_test" }],
...     mechanisms: [ "SCRAM-SHA-1" ]
... })
{ "ok" : 1 }

6、创建 mongouser角色授权


db.runCommand({  
...     createRole: "mongouser",  
...     privileges: [  
...         {  
...             resource: { db: "ep_mongo", collection: "" },  
...             actions: [  
...                 "find", "insert", "update", "createIndex", "dropIndex"
...             ]  
...         },  
...         {  
...             resource: { db: "ep_mongo_test", collection: "" },  
...             actions: [  
...                "find", "insert", "update", "createIndex", "dropIndex"
...             ]  
...         }  
...     ],  
...     roles: []  
... })
{ "ok" : 1 }

7、更新root账号也可以使用 mongouser角色


db.runCommand({
... ...     updateUser: "root",
... ...     roles: [ 
... ...         { role: "root", db: "admin" },
... ...         { role: "mongouser", db: "admin" }
... ...     ]
... ... })
{ "ok" : 1 }

8、重启服务

9、mongo命令 可能在高版本中无法使用,就使用mongosh

比如登录命令:

mongosh --username root --password yourpassword --authenticationDatabase admin

带端口号:

mongosh --port 27017 -u "root" -p "zxxxxxxx" --authenticationDatabase "admin"

不做换行:

创建用户
db.runCommand({createUser: "mongouser",pwd: "xxxxxx", roles: [ { role: "readWrite", db: "ep_mongo" }, { role: "root", db: "admin" }],mechanisms: [ "SCRAM-SHA-1" ]})

创建角色
db.runCommand({createRole: "mongouser",privileges: [ { resource: { db: "ep_mongo", collection: "" },actions: [ "find", "insert", "update", "createIndex", "dropIndex"]  }], roles: [] })

配置root可以使用新增的角色
db.runCommand({updateUser: "root",roles: [ { role: "root", db: "admin" },{ role: "mongouser", db: "admin" }]})

  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

慧香一格

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值