MongoDB权限设置
■MongoDB权限机制
明确需求
发现我们再DOS窗口直接输入命令就可以登录数据库
这在实战工作中绝对不允许的
思考:如何解决
回答:使用权限机制,开启验证模式即可
语法(略难
创建账号
db.createUser({
"user" : "账号",
"pwd": "密码",
"roles" : [{
role: "角色",
db: "所属数据库"
}]
})
角色
#角色种类
超级用户角色:root
数据库用户角色:read、readWrite;
数据库管理角色:dbAdmin、userAdmin;
集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
备份恢复角色:backup、restore;
所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
#角色说明
root:只在admin数据库中可用。超级账号,超级权限;
read:允许用户读取指定数据库;
readWrite:允许用户读写指定数据库;
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile;
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限;
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限;
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户;
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限;
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限;
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限;
开启验证模式
**开启验证模式概念: ** 名词,指用户需要输入账号密码才能登陆使用
操作步骤
1. 添加超级管理员
2. 退出卸载服务
3. 重新安装需要输入账号密码的服务(注在原安装命令基础上加上--auth即可
4. 启动服务 -> 登陆测试
步骤1:添加超级管理员
mongo
use admin db.createUser({ "user" : "admin", "pwd": "admin888", "roles" : [{ role: "root", db: "admin" }] })脚下留心:2.x 3.x 4.x 前面版本默认是看不到admin没关系 你直接选中即可
步骤2:退出卸载服务
bin\mongod --remove脚下留心:DOS窗口必须用管理员省份运行

步骤3:安装需要身份验证的MongoDB服务
bin\mongod --install --dbpath E:\mongodb\data --logpath E:\mongodb\logs\mongodb2.log --auth

步骤4:启动服务 -> 登录测试

通过超级管理员账号登陆
- 方法1:mongo 服务器IP地址:端口/数据库 -u 用户名 -p 密码


- 方法2:a-先登录,b-选择数据库,c-输入db.auth(用户名,密码)

练习
- 需求
添加用户shop1可以读shop数据库
添加用户shop2可以读写shop数据库
脚下留心:必须在对应数据库创建用户
- 准备:创建测试数据和测试用户(注:选择shop仓库创建用户)
use shop; for(var i=1; i<=10; i++) { db.goods.insert({"name":"goodsName"+i,"price":i}); }
- 添加用户并设置权限
//切记 use shop //shop1 db.createUser({ "user" : "shop1", "pwd": "admin888", "roles" : [{ role: "read", db: "shop" }] }) //shop2 db.createUser({ "user" : "shop2", "pwd": "admin888", "roles" : [{ role: "readWrite", db: "shop" }] })
- 验证:shop1可读

- 验证:shop2验证可读可写

壬戌之秋,七月既望,苏子与客泛舟游于赤壁之下。清风徐来,水波不兴。举酒属客,诵明月之诗,歌窈窕之章。少焉,月出于东山之上,徘徊于斗牛之间。白露横江,水光接天。纵一苇之所如,凌万顷之茫然。浩浩乎如冯虚御风,而不知其所止;飘飘乎如遗世独立,羽化而登仙。
于是饮酒乐甚,扣舷而歌之。歌曰:“桂棹兮兰桨,击空明兮溯流光。渺渺兮予怀,望美人兮天一方。”客有吹洞箫者,倚歌而和之。其声呜呜然,如怨如慕,如泣如诉,余音袅袅,不绝如缕。舞幽壑之潜蛟,泣孤舟之嫠妇。
苏子愀然,正襟危坐而问客曰:“何为其然也?”客曰:“月明星稀,乌鹊南飞,此非曹孟德之诗乎?西望夏口,东望武昌,山川相缪,郁乎苍苍,此非孟德之困于周郎者乎?方其破荆州,下江陵,顺流而东也,舳舻千里,旌旗蔽空,酾酒临江,横槊赋诗,固一世之雄也,而今安在哉?况吾与子渔樵于江渚之上,侣鱼虾而友麋鹿,驾一叶之扁舟,举匏樽以相属。寄蜉蝣于天地,渺沧海之一粟。哀吾生之须臾,羡长江之无穷。挟飞仙以遨游,抱明月而长终。知不可乎骤得,托遗响于悲风。”
苏子曰:“客亦知夫水与月乎?逝者如斯,而未尝往也;盈虚者如彼,而卒莫消长也。盖将自其变者而观之,则天地曾不能以一瞬;自其不变者而观之,则物与我皆无尽也,而又何羡乎!且夫天地之间,物各有主,苟非吾之所有,虽一毫而莫取。惟江上之清风,与山间之明月,耳得之而为声,目遇之而成色,取之无禁,用之不竭,是造物者之无尽藏也,而吾与子之所共适。”
客喜而笑,洗盏更酌。肴核既尽,杯盘狼籍。相与枕藉乎舟中,不知东方之既白。

浙公网安备 33010602011771号