時間:2024-02-07 12:09作者:下載吧人氣:23
上一篇博客主要聊了下分布式文檔存儲數據庫之MongoDB備份與恢復,回顧請參考;今天我們來了解下mongodb的訪問控制;
什么是訪問控制?
簡單講訪問控制就是指,哪些用戶可以訪問哪些資源,對資源有哪些操作(權限);在mongodb中我們把數據庫、或者集合叫做資源;也就說訪問控制是用來限制某些用戶對數據庫或集合的操作;我們在mysql數據庫中,我們通過給賬號授權的方式達到控制哪些用戶可以從哪些主機訪問數據庫,對數據庫有哪些操作;其中賬號由用戶名稱和主機地址構成;在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
}
>
網友評論