关闭mongo
ps -ef | grep mongo
kill -9 {pid}
先停止mongodb的进程
修改配置文件mongo.conf
dbpath=/opt/sumscope/mongodb/data/db logpath=/opt/sumscope/mongodb/logs/mongodb.log logappend=true port=27017 fork=true verbose=vv bind_ip = 0.0.0.0 maxConns=100 pidfilepath =/opt/sumscope/mongodb/bin/mongo.pid cpu = true auth=true //是否开启权限验证 把权限认证先关闭,设置为false 重新启动mongodb,进入到mongo的bin目录下面
./mongod -f mongodb.conf
创建用户
mongo启动成功后
- 进去admin
use admin
- 创建mongo库
use STC
创建好之后再切换会admin库
use admin
- 创建用户
db.createUser({user:"tbook",pwd:"tbook",roles:[{role:"readWrite",db:"STC"}]})
db.createUser({user:"tbookread",pwd:"tbookread",roles:[{role:"read",db:"STC"}]})
- 停止mongo,修改配置文件
配置文件的auth要设置为true
auth=true //权限认证开启
然后关闭mongo,重新启动mongo
创建用户登录
读写用户登录,并且创建集合案例 读写用户登录
./mongo --port 27017 -u "tbook" -p "tbook" --authenticationDatabase "STC"
进入设置的读写数据库
use STC
创建STC库中的集合
db.createCollection("test")
只读用户登录
./mongo --port 27017 -u "tbookread" -p "tbookread" --authenticationDatabase "STC"
只读用户创建集合
db.createCollection("test1")
只读用户不允许创建集合 查询读写用户创建的test集合
show tables;
查询集合数据
角色权限解读
Built-In Roles(内置角色):
数据库用户角色:read、readWrite。 数据库管理角色:dbAdmin、dbOwner、userAdmin。 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager。 备份恢复角色:backup、restore。 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase。 超级用户角色:root 还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)。 内部角色:__system。
具体角色:
Read:允许用户读取指定数据库。 readWrite:允许用户读写指定数据库。 dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问。 userAdmin:允许用户向 system.users 集合写入,可以找指定数据库里创建、删除和管理用户。 clusterAdmin:只在 admin 数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。 readAnyDatabase:只在 admin 数据库中可用,赋予用户所有数据库的读权限。 readWriteAnyDatabase:只在 admin 数据库中可用,赋予用户所有数据库的读写权限。 userAdminAnyDatabase:只在 admin 数据库中可用,赋予用户所有数据库的 userAdmin 权限。 dbAdminAnyDatabase:只在 admin 数据库中可用,赋予用户所有数据库的 dbAdmin 权限。 root:只在 admi n数据库中可用。超级账号,超级权限。
|