roles角色详解:
数据库用户角色(Database User Roles)
- read : 授权User只读数据的权限,允许用户读取指定的数据库
- readWrite 授权User读/写数据的权限,允许用户读/写指定的数据库
数据库管理角色(Database Admininstration Roles)
- dbAdmin:在当前的数据库中执行管理操作,如索引的创建、删除、统计、查看等
- dbOwner:在当前的数据库中执行任意操作,增、删、改、查等
- userAdmin :在当前的数据库中管理User,创建、删除和管理用户
备份和还原角色(Backup and Restoration Roles)
- backup
- restore
跨库角色(All-Database Roles)
- readAnyDatabase:授权在所有的数据库上读取数据的权限,只在admin 中可用
- readWriteAnyDatabase:授权在所有的数据库上读写数据的权限,只在admin 中可用
- userAdminAnyDatabase:授权在所有的数据库上管理User的权限,只在admin中可用
- dbAdminAnyDatabase: 授权管理所有数据库的权限,只在admin 中可用
集群管理角色(Cluster Administration Roles)
- clusterAdmin:授权管理集群的最高权限,只在admin中可用
- clusterManager:授权管理和监控集群的权限
- clusterMonoitor:授权监控集群的权限,对监控工具具有readonly的权限
- hostManager:管理server
超级角色(super master Roles)
- root :超级账户和权限,只在admin中可用
一、设置用户
1、添加用户
show dbs
use admin
创建管理员
db.createUser({ user: "admin", pwd: "password", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })
创建超级用户
db.createUser({user: "root",pwd: "password", roles: [ { role: "root", db: "admin" } ]})
创建普通用户
先到指定数据库
use yourdatabase
db.createUser({user: "user",pwd: "password",roles: [ { role: "dbOwner", db: "yourdatabase" } ]})
2、查看用户
show users
3、删除用户
首先进入admin
use admin
db.auth("admin","password")
删除单个用户
db.system.users.remove({user:"XXXXXX"})
删除所有用户
db.system.users.remove({})
二、配置mongo.conf文件
修改 mongo.conf 文件
YAML格式,添加
security:
authorization: enabled
三、登录
admin登录
./bin/mongo -u admin -p admin
【第一个admin是 用户名,第二个是 密码】
show dbs 可以看到所有的数据库
普通用户登录
./bin/mongo
登录后看不到数据库,必须到指定的数据库下,输入对应的用户名和密码,就可以看到里面的数据
use yourdatabase
db.auth("user1","root")