创建用户
首先要进入我们的admin库中,进入方法是直接使用use admin 就可以。进入后可以使用show collections来查看数据库中的集合。默认是只有一个集合的(system.version)。
创建用户可以用db.createUser方法来完成
db.createUser({
user:"panpan",
pwd:"123456",
customData:{
name:'潘潘',
email:'211695630@qq.com',
age:18,
},
roles:['read']
})
当然我们还可以单独配置一个数据库的权限,比如我们现在要配置compay数据库的权限为读写:
db.createUser({
user:"panpan",
pwd:"123456",
customData:{
name:'潘潘',
email:'211695630@qq.com',
age:18,
},
roles:[
{
role:"readWrite",
db:"company"
},
'read'
]
})
内置角色:
数据库用户角色:read、readWrite;
数据库管理角色:dbAdmin、dbOwner、userAdmin;
集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManage;
备份恢复角色:backup、restore;
所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
超级用户角色:root
内部角色:__system
查找用户信息
我们直接可以使用查找的方法,查找用户信息。命令很简单:
db.system.users.find()
删除用户
删除用户也是非常简单,直接用remove就可以删除这个用户的信息和权限。
db.system.users.remove({user:"panpan"})
建权
有时候我们要验证用户的用户名密码是否正确,就需要用到MongoDB提供的建权操作。也算是一种登录操作,不过MongoDB把这叫做建权。
db.auth("panpan","123456")
如果正确返回1,如果错误返回0。(Error:Authentication failed。)
启动建权
重启MongoDB服务器,然后设置必须使用建权登录。
mongod --auth
启动后,用户登录只能用用户名和密码进行登录,原来的mongo形式连接已经不起作用了。相应的用户权限也对应妥当。实际项目中我们启动服务器必须使用建权形式。
登录
如果在配置用户之后,用户想登录,可以使用mongo的形式,不过需要配置用户名密码:
mongo -u panpan -p 123456 127.0.0.1:27017/admin
这时候我们就可以用给我们的权限对数据库操作了。