MongoDB 用户权限管理及配置详解
MongoDB是一款非关系型数据库,在使用过程中,需要对数据进行管理和权限配置,以保证数据的安全性。本文将介绍MongoDB用户权限管理及配置的详细步骤。
1. 连接MongoDB数据库
使用命令行连接MongoDB数据库,进入mongo shell:
mongo
2. 创建管理员用户
为了保证数据的安全性,首先需要创建管理员用户,并为其分配相应的权限。
2.1 创建管理员用户
在mongo shell中执行以下命令,创建一个名为"admin"的管理员用户:
use admin
db.createUser({
user: "admin",
pwd: "admin123",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
})
其中,"admin"为用户名,"admin123"为密码,"userAdminAnyDatabase"为角色名称,分配该角色可以管理任何数据库。
2.2 验证管理员用户
验证管理员用户是否创建成功,在mongo shell中执行以下命令:
db.auth("admin", "admin123")
如果返回值为1,则表示验证成功。
3. 创建普通用户
除了管理员用户,还可以创建普通用户并为其分配相应的权限,以限制其对数据库的操作。
3.1 创建普通用户
在mongo shell中执行以下命令,创建一个名为"test"的普通用户:
use testdb
db.createUser({
user: "test",
pwd: "test123",
roles: [ { role: "readWrite", db: "testdb" } ]
})
其中,"test"为用户名,"test123"为密码,"readWrite"为角色名称,分配该角色可以读写数据库"testdb"。
3.2 验证普通用户
在mongo shell中执行以下命令,验证普通用户是否创建成功:
use testdb
db.auth("test", "test123")
如果返回值为1,则表示验证成功。
示例1:使用普通用户读写数据
- 切换到普通用户所属的数据库:
use testdb
- 使用普通用户进行数据的插入操作:
db.testcollection.insert({
name: "testuser",
age: 28
})
- 使用普通用户进行数据的查询操作:
db.testcollection.find({
name: "testuser"
})
示例2:使用普通用户删除数据
- 切换到管理员用户所属的数据库:
use admin
- 给普通用户授权删除数据:
db.grantRolesToUser("test", [{role:"dbOwner", db:"testdb"}] )
- 切换到普通用户所属的数据库:
use testdb
- 使用普通用户进行数据的删除操作:
db.testcollection.remove({
name: "testuser"
})
以上就是MongoDB用户权限管理及配置的详细攻略,通过合理的用户权限配置,可以保证MongoDB数据库的安全性。