知乎专栏 |
目录
开启用户认证
sed -i "32s/#security:/security:/" /etc/mongod.conf sed -i "33 i \ \ authorization: enabled" /etc/mongod.conf
权限
数据库用户角色 read: 只读数据权限 readWrite:学些数据权限 数据库管理角色 dbAdmin: 在当前db中执行管理操作的权限 dbOwner: 在当前db中执行任意操作 userADmin: 在当前db中管理user的权限 备份和还原角色 backup restore 夸库角色 readAnyDatabase: 在所有数据库上都有读取数据的权限 readWriteAnyDatabase: 在所有数据库上都有读写数据的权限 userAdminAnyDatabase: 在所有数据库上都有管理user的权限 dbAdminAnyDatabase: 管理所有数据库的权限 集群管理 clusterAdmin: 管理机器的最高权限 clusterManager: 管理和监控集群的权限 clusterMonitor: 监控集群的权限 hostManager: 管理Server 超级权限 root: 超级用户
use admin db.createUser( { user: "admin", pwd: passwordPrompt(), // or cleartext password roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ] } )
db.createUser( { user: "eos", pwd: "eos", // or cleartext password roles: [ { role: "userAdmin", db: "eos" }, "readWrite" ] } )
注意,只有创建了超级管理后,下面的操作才会生效
MongoDB
use products db.createUser( { user: "accountUser", pwd: "password", roles: [ "readWrite", "dbAdmin" ] } )
早期版本
> use neo switched to db neo > db.addUser('neo','chen') { "user" : "neo", "readOnly" : false, "pwd" : "68ace374737253d87e0ec91d4fcb673d" } > db.system.users.find() { "_id" : ObjectId("4c481404b9db6474d2fcb76f"), "user" : "neo", "readOnly" : false, "pwd" : "68ace374737253d87e0ec91d4fcb673d" } > db.auth('neo','chen') 1
Deleting Users 删除用户
To delete a user:
> db.getUsers(); [ { "_id" : "test.monitor", "user" : "monitor", "db" : "test", "roles" : [ { "role" : "dbOwner", "db" : "test" } ] } ] > db.dropUser('monitor') ture > db.getUsers(); [ ]