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

发布于:2024-06-02 ⋅ 阅读:(118) ⋅ 点赞:(0)

目录

处理原因:

1、设定mongodb的环境变量

2、登录mongodb

3、使用admin库

4、创建 mongouser用户

5、更新 mongouser 可使用的库

6、创建 mongouser角色授权

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


处理原因:

在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、重启服务


网站公告

今日签到

点亮在社区的每一天
去签到