软件下载吧文章资讯

分类分类

分享分布式文档存储数据库MongoDB访问控制的操作

2024-02-07 12:09作者:下载吧

  上一篇博客主要聊了下分布式文档存储数据库之MongoDB备份与恢复,回顾请参考;今天我们来了解下mongodb的访问控制;

  什么是访问控制?

  简单讲访问控制就是指,哪些用户可以访问哪些资源,对资源有哪些操作(权限);在mongodb中我们把数据库、或者集合叫做资源;也就说访问控制是用来限制某些用户对数据库或集合的操作;我们在mysql数据库中,我们通过给账号授权的方式达到控制哪些用户可以从哪些主机访问数据库,对数据库有哪些操作;其中账号由用户名称和主机地址构成;在mongodb中采用的不是用户+主机地址的方式,而是通过给用户赋予一个或多个角色,这个角色或多个角色的所有权限就是这个用户拥有的权限;默认情况mongodb是没有启用访问控制的,所以只要能够连接上mongodb实例,我们就可以在其上做任何操作,在某种程度上,这是一种极为不安全的方式,为了杜绝这种不安全的访问方式,我们需要对mongodb进行访问控制;

  mongodb中的角色权限说明

  mongodb默认内置了一些角色,不同的角色拥有不同的权限,如下图

分享分布式文档存储数据库MongoDB访问控制的操作

  查看mongodb中某个数据库所有内置角色

> db.runCommand({rolesInfo:1,showBuiltinRoles:true})
{
“roles” : [
{
“role” : “dbAdmin”,
“db” : “test”,
“isBuiltin” : true,
“roles” : [ ],
“inheritedRoles” : [ ]
},
{
“role” : “dbOwner”,
“db” : “test”,
“isBuiltin” : true,
“roles” : [ ],
“inheritedRoles” : [ ]
},
{
“role” : “enableSharding”,
“db” : “test”,
“isBuiltin” : true,
“roles” : [ ],
“inheritedRoles” : [ ]
},
{
“role” : “read”,
“db” : “test”,
“isBuiltin” : true,
“roles” : [ ],
“inheritedRoles” : [ ]
},
{
“role” : “readWrite”,
“db” : “test”,
“isBuiltin” : true,
“roles” : [ ],
“inheritedRoles” : [ ]
},
{
“role” : “userAdmin”,
“db” : “test”,
“isBuiltin” : true,
“roles” : [ ],
“inheritedRoles” : [ ]
}
],
“ok” : 1
}
>

展开全部

相关文章

说两句网友评论
    我要跟贴
    取消