Share via


安全性角色概觀

主體會透過角色型訪問控制模型授與資源的存取權,其中其指派的安全性角色會決定其資源存取權。

當主體嘗試作業時,系統會執行授權檢查,以確定主體與至少一個授與許可權執行作業的安全性角色相關聯。 授權檢查失敗會中止作業。

本文所列的管理命令可用來管理資料庫、數據表、外部數據表、具體化檢視和函式上的主體及其安全性角色。

注意

AllDatabasesViewerAllDatabasesMonitorAllDatabasesAdmin三個叢集層級安全性角色無法使用安全性角色管理命令進行設定。 若要瞭解如何在 Azure 入口網站 中設定它們,請參閱管理叢集許可權

管理命令

下表描述用來管理安全性角色的命令。

命令 描述
.show 清單 具有指定角色的主體。
.add 將一或多個主體新增至角色。
.drop 從角色移除一或多個主體。
.set 將角色設定為特定的主體清單,移除所有先前的主體清單。

安全性角色

下表描述針對每個角色授與的存取層級,並顯示是否可以在指定物件類型內指派角色的檢查。

角色 權限 資料庫 資料表 外部資料表 具體化檢視 函式
admins 檢視、修改和移除物件和子物件。 ✔️ ✔️ ✔️ ✔️ ✔️
users 檢視 物件並建立新的子物件。 ✔️
viewers 檢視未開啟 RestrictedViewAccess 的物件 ✔️
unrestrictedviewers 檢視物件,即使 RestrictedViewAccess 開啟也一樣。 主體也必須具有 adminsviewersusers 許可權。 ✔️
ingestors 擷取數據至物件,而不需要存取查詢。 ✔️ ✔️
monitors 檢視元數據,例如架構、作業和許可權。 ✔️

如需每個範圍安全性角色的完整描述,請參閱 Kusto 角色型訪問控制

注意

無法只為資料庫中的某些數據表指派 viewer 角色。 如需如何將主體檢視存取權授與數據表子集的不同方法,請參閱 管理數據表檢視存取權。

常見案例

在叢集上顯示您的角色

若要查看叢集上您自己的角色,請執行下列命令:

.show cluster principal roles

在資源上顯示您的角色

若要檢查在特定資源上指派給您的角色,請在相關資料庫或包含資源的資料庫內執行下列命令:

// For a database:
.show database DatabaseName principal roles

// For a table:
.show table TableName principal roles

// For an external table:
.show external table ExternalTableName principal roles

// For a function:
.show function FunctionName principal roles

// For a materialized view:
.show materialized-view MaterializedViewName principal roles

顯示資源上所有主體的角色

若要查看指派給特定資源之所有主體的角色,請在相關資料庫或包含資源的資料庫內執行下列命令:

// For a database:
.show database DatabaseName principals

// For a table:
.show table TableName principals

// For an external table:
.show external table ExternalTableName principals

// For a function:
.show function FunctionName principals

// For a materialized view:
.show materialized-view MaterializedViewName principals

提示

使用 where 運算符,依特定主體或角色篩選結果。

修改角色指派

如需如何在資料庫和數據表層級修改角色指派的詳細資訊,請參閱 管理資料庫安全性角色 和管理 數據表安全性角色