時間:2024-02-07 12:09作者:下載吧人氣:20
上一篇博客主要聊了下分布式文檔存儲數(shù)據(jù)庫之MongoDB備份與恢復(fù),回顧請參考;今天我們來了解下mongodb的訪問控制;
什么是訪問控制?
簡單講訪問控制就是指,哪些用戶可以訪問哪些資源,對資源有哪些操作(權(quán)限);在mongodb中我們把數(shù)據(jù)庫、或者集合叫做資源;也就說訪問控制是用來限制某些用戶對數(shù)據(jù)庫或集合的操作;我們在mysql數(shù)據(jù)庫中,我們通過給賬號授權(quán)的方式達到控制哪些用戶可以從哪些主機訪問數(shù)據(jù)庫,對數(shù)據(jù)庫有哪些操作;其中賬號由用戶名稱和主機地址構(gòu)成;在mongodb中采用的不是用戶+主機地址的方式,而是通過給用戶賦予一個或多個角色,這個角色或多個角色的所有權(quán)限就是這個用戶擁有的權(quán)限;默認情況mongodb是沒有啟用訪問控制的,所以只要能夠連接上mongodb實例,我們就可以在其上做任何操作,在某種程度上,這是一種極為不安全的方式,為了杜絕這種不安全的訪問方式,我們需要對mongodb進行訪問控制;
mongodb中的角色權(quán)限說明
mongodb默認內(nèi)置了一些角色,不同的角色擁有不同的權(quán)限,如下圖
查看mongodb中某個數(shù)據(jù)庫所有內(nèi)置角色
> 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
}
>
網(wǎng)友評論