MongoDB身份验证--命令行模式
来源:互联网 发布:淘宝店铺招牌怎么设置 编辑:程序博客网 时间:2024/05/17 08:19
摘要
MongoDB3.x与之前的版本有很大区别,这里简单介绍一下用户身份验证相关内容。
1. 了解3.x版本添加用户的函数
函数:
db.createUser(user,writeConcern);
参数:
user这个文档关于用户身份认证和访问的相关信息;
writeConcern这个文档描述MongoDB提供写操作的相关信息。
user 文档提供的格式:
{ user: “”,
pwd: “”,
customData: { },
roles: [
{ role: “”, db: “” } | “”,
…
]
user 文档字段介绍:
user:用户名
pwd:密码
roles:指定用户的角色,可以用一个空数组给新用户设定空角色;
在roles字段,可以指定内置角色和用户定义的角色。
role里的角色可以选:
Built-In Roles(内置角色):
1. 数据库用户角色:read、readWrite;
2. 数据库管理角色:dbAdmin、dbOwner、userAdmin;
3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
4. 备份恢复角色:backup、restore;
5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
6. 超级用户角色:root
// 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
7. 内部角色:__system
角色释义:
Read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限
2.添加用户
在安装MongoDB完成后,启动未启用安全检查的MongoDB服务,进入查看数据库,只有一个local库,admin库是不存在的。现在创建一个拥有授权权限的帐号,su,这里注意一下在哪个库下创建的用户必须要在那个库下去验证(auth)。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
上面创建一个拥有 userAdminAnyDatabase 角色,用来管理用户的用户,可以通过这个角色来创建、删除用户。验证时需要重新启动MongoDB服务,加上–auth参数。
- 1
- 1
重新登录:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
因为在admin创建的用户,在test下验证所以失败了
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
3.验证
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
只有拥有root权限才既有授权权限,又有对集合操作的权限。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
4.注意
1.可以在当前数据库下去创建其他数据库的用户帐号,但是该帐号只能在当前数据库下才能验证通过,然后才能去操作对应的数据库;
2.安全检查未开启的情况下,在其他的数据库创建对应的用户也是可以的。
- MongoDB身份验证--命令行模式
- MongoDB身份验证--命令行模式
- 身份验证模式
- mongodb 命令行
- Windows身份验证模式改为混合身份验证模式
- MongoDB命令行模式下,格式化find()的返回结果,pretty()
- 改变SQL2005身份验证模式
- 身份验证模式变更
- SQL Server 身份验证模式
- sql 身份验证模式
- SQL身份验证改为混合模式身份验证
- Mongodb 3.0 配置身份验证db.createUser() 说明
- mongodb node.js 身份验证启动/连接
- MongoDB管理用户并启用身份验证
- MongoDB命令行操作(上)
- MongoDB命令行操作(下)
- MongoDB命令行操作
- MongoDB命令行操作
- 如何在DigitalOcean上设置一套CoreOS集群
- Intellij Idea 修改 properties 文件编码
- 每天一个linux命令——压缩命令
- Access restriction : The type BASE64Decoder is not accessible due to restriction
- Unity Text文本颜色渐变效果
- MongoDB身份验证--命令行模式
- 《道德经》 第二章
- svn服务器搭建和使用(三)
- startup_LPC17XX.s 启动文件分析
- 挂载U盘到Ubuntu系统
- 欢迎使用CSDN-markdown编辑器
- RSA算法原理(一)
- Mac如何在中文输入法中显示英文标点
- 【转】Xcode中Info.plist文件各个键的作用说明