Mongodb数据库创建数据库并赋予不同的用户权限

本文详细介绍如何使用mongoadmin命令在MongoDB中创建不同权限级别的用户,包括数据库所有者和读写账户,并解释了角色的概念及其赋予的具体操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mongo admin -u root -p 登录数据库

      

       use testdb  #如过数据库不存在则创建

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

       rote:dbOwner 代表数据库所有者角色,拥有最高该数据库最高权限。比如新建索引等

 

       新建数据库读写账户

       use testdb

       db.createUser({ user: "11", pwd: "11", roles: [{ role: "readWrite", db: "testdb" }] })

       该用户用于该数据的读写,只拥有读写权限。

### 如何在MongoDB中配置和管理用户权限 #### 创建具有特定权限用户 为了创建一个具备广泛权限数据库管理员,在 MongoDB shell 中可以切换至 `admin` 数据库调用 `createUser` 方法来添加拥有 `readWriteAnyDatabase`, `dbAdminAnyDatabase` 和 `clusterAdmin` 角色的用户[^2]。 ```javascript use admin; db.createUser({ user: "superAdmin", pwd: "password123", // 应替换为更安全的密码 roles: [ { role: "readWriteAnyDatabase", db: "admin" }, { role: "dbAdminAnyDatabase", db: "admin" }, { role: "clusterAdmin", db: "admin" } ] }); ``` 此段代码会建立名为 `superAdmin` 的超级管理员账号,赋予其对整个系统的全面控制权。请注意实际应用时应采用更强的安全措施保护账户凭证。 #### 定义自定义角色与分配权限 除了内置的角色外,还可以通过 `createRole` 函数定制化新角色,指定具体的操作权限范围: ```javascript use mydatabase; // 替换成目标数据库名称 db.createRole({ role: "customReader", privileges: [{ resource: { db: "mydatabase", collection: "" }, actions: ["find"] }], roles: [] }); // 给已有用户授予新建的角色 db.grantRolesToUser( "existingUsername", [{role:"customReader", db:"mydatabase"}] ); ``` 上述脚本展示了怎样构建仅允许读取数据而不做修改的新角色 `customReader` 将其指派给现有用户。 #### 修改现有用户权限 如果需要调整已存在用户权限,则可以通过更新他们的角色列实现这一点: ```javascript use admin; db.updateUser("usernameToUpdate",{ roles:[ {"role":"newRoleName","db":"targetDb"} ] }) ``` 这段命令用于更改用户名为 `"usernameToUpdate"` 用户所持有的角色集合,从而改变其所拥有的权限级别。 #### 查看当前用户及其权限详情 最后,若想了解某个特定用户被授予权限的情况,可执行如下查询语句获取相关信息: ```javascript use admin; printjson(db.system.users.findOne({user : 'specificUserName'})); ``` 这将返回有关 `'specificUserName'` 这一用户的全部记录,包括关联的角色和其他属性信息。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值