位置: 编程技术 - 正文
推荐整理分享Mongodb如何开启用户访问控制详解(mongodb使用教程),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:mongodb如何开启验证登陆,mongodb如何开启验证登陆,mongodb如何开启事务,mongodb如何开启事务,mongodb使用教程,mongodb怎么开启,mongodb如何开启事务,mongodb怎么开启,内容如对您有帮助,希望把文章链接给更多的朋友!
前言
Mongodb 数据库默认情况下是没有访问控制的,整个数据库对外是开发的,只要能连上数据库,则可以进行任何操作,这会对数据带来很大的风险。当然,我们可以启用mongodb的访问控制,只让通过认证的用户才能对数据库进行角色范围内的操作。
启用访问控制可以通过在启动 mongodb 时指定 --auth 参数来设置,另外还涉及到创建用户 db.createUser 操作以及一些角色的定义,我们先来看这部分内容。
db.createUser() 用法
参数说明:
user 是用户名 pwd 是密码 role 来指定用户的角色 db 来指定所属的数据库 roles 是用户所有角色的集合Mongodb 预定义角色
Mongodb 中预定义了一些角色,把这些角色赋予给适当的用户上,用户就只能进行角色范围内的操作。
1、数据库用户角色 (所有数据库都有)
read 用户可以读取当前数据库的数据 readWrite 用户可以读写当前数据库的数据2、数据库管理角色(所有数据库都有)
dbAdmin 管理员用户但不能对用户和角色管理授权 dbOwner 数据库所有者可进行任何管理任务 userAdmin 可以管理当前数据的用户和角色3、集群管理角色(admin数据库可用)
clusterAdmin 集群所有管理权限,是 clusterManager , clusterMonitor, hostManager 合集 clusterManager 集群管理和监控 clusterMonitor 集群监控,只读的 hostManager 监控和管理服务器4、备份和恢复角色(admin数据库可用)
backup restore5、所有数据库角色(admin数据库可用)
readAnyDatabase 读取所有数据库 readWriteAnyDatabase 读写所有数据库 userAdminAnyDatabase 所有数据库的 userAdmin 权限 dbAdminAnyDatabase 所有数据库的 dbAdmin 权限6、超级角色(admin数据库可用)
root 超级用户7、内部角色
__system 所有操作权限更多预定于角色的信息请参看: 启动 mongodb 实例,关闭 访问控制
不带 --auth
2, 连接上 mongodb 实例
3,创建用户管理员
在 admin 数据库中添加一个 具有 userAdminAnyDatabase 角色的用户作为用户管理用户。下面的例子中创建了 admin 为用户管理员。
退出连接
4,重启数据库启用访问控制
命令行启动,只需要添加 --auth 参数
5,使用管理用户连接,有两种方法
使用命令行 ./mongo -u "$USERNAME" -p "$PASSWROD" --authenticationDatabase "admin" 使用 db.auth()我们使用第二种
1 表示认证成功
6, 为某个数据库创建独立用户
以下为 test 数据库 创建具有读写权限的用户 test
admin 用户由于只有 userAdminAnyDatabase 权限,所以没有 test 数据的读写权限,所以,为了读写 test 数据库,我们需要创建一个用户。先看一下直接用 admin 会报什么错误
我们直接使用 show collections , 则报错:not authorized on test to execute command ,意思是没有权限。
然后我们使用 db.auth(“test”, “test”) , 再执行命令 则没有报错
试着写入一条数据,也是正常的。
总结
标签: mongodb使用教程
本文链接地址:https://www.jiuchutong.com/biancheng/312606.html 转载请保留说明!友情链接: 武汉网站建设