mongodb创建用户,并分配权限为:只能读取resource库下的person,car,sal三张表
时间: 2024-09-12 14:12:20 浏览: 43
在MongoDB中创建用户并分配特定的权限,可以按照以下步骤进行:
1. 首先,确保你已经启用了MongoDB的认证功能,即在启动mongod实例时加入了`--auth`参数或者在配置文件中设置了`security.authorization`为`enabled`。
2. 登录到MongoDB的admin数据库。通常,创建用户和分配角色的操作需要在admin数据库中执行。你可以使用`mongo`命令行工具,并指定admin数据库来登录。
3. 创建用户。使用`createUser`命令来创建一个具有读取权限的新用户。例如:
```javascript
use admin
db.createUser({
user: "readOnlyUser",
pwd: "yourPassword",
roles: [{ role: "read", db: "resource" }]
})
```
4. 分配更细致的权限。MongoDB没有直接提供只读取特定集合的内置角色,你需要创建一个自定义角色来实现这一点。首先,创建一个自定义角色,指定只读权限到resource数据库的person, car, sal这三个集合:
```javascript
use resource
db.createRole({
role: "readPersonCarSal",
privileges: [
{ resource: { db: "resource", collection: "person" }, actions: ["find"] },
{ resource: { db: "resource", collection: "car" }, actions: ["find"] },
{ resource: { db: "resource", collection: "sal" }, actions: ["find"] }
],
roles: []
});
```
5. 将自定义角色分配给用户。使用`updateUser`命令将刚创建的自定义角色添加到用户权限中:
```javascript
use admin
db.updateUser("readOnlyUser", {
roles: [
{ role: "readPersonCarSal", db: "resource" }
]
});
```
6. 验证权限。重新登录到MongoDB,使用新创建的用户并尝试读取resource数据库下的不同集合,以确认权限设置正确。
阅读全文