在MongoDB中,用户是通过用户名和密码进行身份验证的。为了更好地管理数据库的安全性,您可以设置不同的用户权限。本文将介绍如何在MongoDB中添加用户并限制其访问权限。
1. 创建管理员用户
首先,我们需要创建一个管理员用户来管理数据库。在MongoDB shell中,使用以下命令创建管理员用户:
```
> use admin
> db.createUser({
user: "admin",
pwd: "password",
roles: ["root"]
})
```
在上面的示例中,我们创建了一个名为“admin”的用户,并将其密码设置为“password”。该用户被授予了“root”角色,这意味着它具有管理整个MongoDB服务器的权限。
2. 添加普通用户
现在,我们将创建一个普通用户并将其限制为只能访问特定的数据库。在MongoDB shell中,使用以下命令添加用户:
```
> use mydb
> db.createUser({
user: "user",
pwd: "password",
roles: ["readWrite"]
})
```
在上面的示例中,我们创建了一个名为“user”的用户,并将其密码设置为“password”。该用户被授予了“readWrite”角色,这意味着它可以读取和写入特定的数据库。
3. 限制用户访问
现在,我们已经创建了一个普通用户,但是它仍然可以访问到整个MongoDB服务器。为了限制其访问权限,我们需要创建一个角色并将其分配给用户。
在MongoDB shell中,使用以下命令创建一个名为“mydbuser”的角色:
```
> use mydb
> db.createRole({
role: "mydbuser",
privileges: [{
resource: {
db: "mydb",
collection: ""
},
actions: ["find", "insert", "update"]
}],
roles: []
})
```
在上面的示例中,我们创建了一个名为“mydbuser”的角色,并将其限制为只能在“mydb”数据库中执行“find”、“insert”和“update”操作。
现在,我们将该角色分配给普通用户:
```
> use mydb
> db.grantRolesToUser("user", ["mydbuser"])
```
现在,“user”用户只能在“mydb”数据库中执行“find”、“insert”和“update”操作,而不能对其他数据库或**进行操作。
评论前必须登录!
注册