mongodb创建用户,并设置权限为:只能读取resource库下的person表
时间: 2024-09-12 22:12:13 浏览: 35
在MongoDB中创建用户并设置特定的权限,需要先确保你有创建用户的权限,并且你的数据库已经开启了认证。以下是创建用户并设置权限的基本步骤:
1. 登录到MongoDB数据库服务器,通常使用`mongo`命令行工具进行操作。
2. 切换到admin数据库,因为在MongoDB中创建用户需要在admin数据库中操作。
```shell
use admin
```
3. 创建具有角色`read`的用户。这里的`read`角色允许用户读取指定数据库中的所有数据。如果你要限制只能读取特定的集合(如`person`),可以使用自定义的用户定义角色(Role-Based Access Control, RBAC)来实现更细粒度的控制。
```javascript
db.createUser({
user: "username",
pwd: "password",
roles: [
{ role: "read", db: "resource" }
]
})
```
4. 如果需要更精细的权限控制,例如只允许读取`person`集合,可以创建一个自定义角色:
```javascript
db.createRole({
role: "readPerson",
privileges: [
{
resource: { db: "resource", collection: "person" },
actions: ["find"]
}
],
roles: []
})
```
5. 然后将这个自定义角色分配给用户:
```javascript
db.updateUser("username", {
roles: [
{ role: "readPerson", db: "resource" }
]
})
```
6. 完成上述步骤后,你可以使用新创建的用户登录,并且只能读取`resource`数据库中的`person`表。
```shell
mongo -u username -p password --authenticationDatabase resource
```
请注意,上述命令中的`username`和`password`需要替换成你实际想要创建的用户名和密码。
阅读全文