mongodb设置账户权限只能增删改查数据而不能删除数据库
  jyD1tZxXZUQ4 2023年12月05日 17 0

MongoDB设置账户权限只能增删改查数据而不能删除数据库

1. 流程图

flowchart TD
    A[创建用户] --> B[为用户分配角色]
    B --> C[为用户授予权限]

2. 详细步骤

2.1 创建用户

创建用户的步骤如下:

  1. 使用Mongo shell连接到MongoDB服务;
  2. 切换到admin数据库;
  3. 使用db.createUser()方法创建新用户。

代码示例:

```javascript
use admin
db.createUser(
  {
    user: "username",
    pwd: "password",
    roles: [ { role: "readWrite", db: "database" } ]
  }
)

其中,`username`为要创建的用户名,`password`为用户密码,`database`为要授权的数据库名称。

#### 2.2 为用户分配角色

为用户分配角色的步骤如下:

1. 切换到admin数据库;
2. 使用`db.createRole()`方法创建新的角色;
3. 使用`db.grantRolesToUser()`方法为用户分配角色。

代码示例:

```markdown
```javascript
use admin
db.createRole(
    {
        role: "customRole",
        privileges: [
            { resource: { db: "database", collection: "" }, actions: [ "insert", "find", "update" ] }
        ],
        roles: []
    }
)
db.grantRolesToUser("username", ["customRole"])

其中,`customRole`为自定义角色名称,`database`为要授权的数据库名称,`username`为要分配角色的用户名。

#### 2.3 为用户授予权限

为用户授予权限的步骤如下:

1. 切换到admin数据库;
2. 使用`db.runCommand()`方法运行授权命令。

代码示例:

```markdown
```javascript
use admin
db.runCommand({
   revokeRolesFromUser: "username",
   roles: ["dbAdmin"],
   writeConcern: { w: "majority" , wtimeout: 5000 }
})

其中,`username`为要授予权限的用户名,`roles`为要撤销的角色。

### 3. 总结

以上就是将MongoDB设置账户权限只能增删改查数据而不能删除数据库的步骤。通过创建用户、为用户分配角色和为用户授予权限,我们可以实现对数据库的细粒度访问控制。这样做可以有效地保护数据库的安全性,同时也方便了用户对数据的操作。

### 4. 参考资料

- MongoDB官方文档:[Create a User](
- MongoDB官方文档:[Create a Role](
- MongoDB官方文档:[Grant Roles to a User](
- MongoDB官方文档:[Revoke Roles from a User](
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月05日 0

暂无评论

推荐阅读
jyD1tZxXZUQ4
最新推荐 更多

2024-05-17