1 用户权限
2 创建管理员:
以非授权模式
开启mongoDB服务。
mongod --port 27017 --dbpath /data/db
然后进入admin数据库,执行如下命令:
use admin
db.createUser(
{
user: "myadmin",
pwd: "myadmin",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
3 创建普通用户
3.1以授权模式
开启mongoDB服务
mongod --auth --port 27017 --dbpath /data/db
3.2 管理员db.auth登录
use admin
db.auth("myadmin","myadmin")
3.3 创建普通用户
先创建数据库: use testdb(数据库名) 没有则创建,有则使用。
然后在创建此数据库下的用户:
db.createUser({user:"testuser",pwd:"testuser",roles:[{role:"readWrite",db:"testdb"}]});
3.4 登录普通用户
testuser只有testdb的读写权限,因此只能在testdb下授权通过, admin库是没有权限的。
use testdb
db.auth("testuser","testuser")
4 创建角色testrole
该角色具有testdb下所有集合的所有操作。
use admin ; // 进入名为admin的数据库下,下同
db.createRole(
{ role:"testrole",
privileges: [
{
resource: {
db:"testdb",
collection:"" //db下所有集合
},
actions: [ "find", "insert", "remove","update" ]
}
],
roles: [ ]
})
5 角色授权给用户
在创建用户时可以指定角色。也可以用户 添加/回收 角色
use admin;
//为用户添加角色
db.grantRolesToUser("testuser", // 用户名
[{ role: "testrole", // 需要添加的角色名
db: "testdb" // 角色对应的认证库,即角色创建时所在的数据库
}])
读写DB权限给user
db.grantRolesToUser("testuser",
[{ role: "readWrite",
db: "testdb"
}])
修改权限
db.updateUser("usertest",{roles:[ {role:"read",db:"testDB"} ]})
6 查看用户权限
可以使用db.getUsers()查看某个数据库中的所有用户
db.getUser("user1")查看数据库中特定用户
7 撤销权限
db.revokeRolesFromUser("testuser",[ { role: "read",db:"admin"} ] )
7创建集合collection
db.createCollection("testcollection")
插入数据: