入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

MongoDB 3.0安全权限访问控制

创建时间:2016-08-02 投稿人: 浏览次数:3079

摘要:

         MongoDB 3.0 安全权限访问控制,在添加用户上面3.0版本和之前的版本有很大的区别,这里就说明下3.0的添加用户的方法。

环境、测试:

        在安装MongoDB之后,先关闭auth认证,进入查看数据库,只有一个local库,admin库是不存在的:



       现在需要创建一个帐号,该账号需要有grant权限,即:账号管理的授权权限。注意一点,帐号是跟着库走的,所以在指定库里授权,必须也在指定库里验证(auth)。


 

上面加粗的就是执行的命令:

user:用户名

pwd:密码

roles:指定用户的角色,可以用一个空数组给新用户设定空角色;在roles字段,可以指定内置角色和用户定义的角色。role里的角色可以选:



        具体角色: 

Read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限
 

        刚建立了 userAdminAnyDatabase 角色,用来管理用户,可以通过这个角色来创建、删除用户。验证:需要开启auth参数。


 

        上面创建了2个帐号,现在验证下:验证前提需要一个集合。



         有没有一个超级权限?不仅可以授权,而且也可以对集合进行任意操作?答案是肯定的,只是不建议使用。那就是role角色设置成root



        因为帐号都是在当前需要授权的数据库下授权的,那要是不在当前数据库下会怎么样?



        上面更加进一步说明数据库帐号是跟着数据库来走的,哪里创建哪里认证。创建了这么多帐号,怎么查看所有帐号



        备份还原使用那个角色的帐号?之前创建的帐号zjy:test库读写权限;zjyr:test库读权限





 

声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。