Microsoft Fabric 中的 SQL 細微權限

適用於:✅ Microsoft Fabric 中的 SQL 分析端點和倉儲

當工作區角色指派或項目權限的預設權限無法提供你所需的控制層級時,可以使用 Fabric 倉庫中的標準 SQL 結構,或是 SQL 分析端點來進行更細緻的存取控制。

針對 Microsoft Fabric 中的 SQL 分析端點與倉庫:

  • 使用 GRANT、REVOKE 和 DENY T-SQL 陳述式來管理物件層級的安全。
  • 將使用者指派到 SQL 角色,包括自訂資料庫角色或內建資料庫角色。

在 Fabric 倉庫中設定使用者細緻權限

  • 使用者若要連接 Fabric 倉庫或 SQL 分析端點,必須指派他們為工作區角色或授予項目讀取權限。 如果沒有最低的 [讀取] 權限,連線會失敗。
  • 要在使用者連接倉庫前設定細緻權限,請先在 SQL 中定義權限。 然後透過指派工作區角色或授予物品權限,給他們存取權限。

建立使用者限制

  • 你無法明確執行CREATE USER在 Fabric 倉庫或 SQL 分析端點中。 當你執行 GRANT 或 DENY時,Fabric 會自動建立資料庫使用者。 使用者必須同時擁有足夠的工作區層級權限才能連線。

檢視我的權限

使用者透過 SQL 連接字串連接 Fabric 倉庫或 SQL 分析端點後,可以透過 sys.fn_my_permissions 函式查看可用的權限。

目前使用者的資料庫範圍權限:

SELECT *
FROM sys.fn_my_permissions(NULL, 'Database');

目前使用者的綱要範圍權限:

SELECT *
FROM sys.fn_my_permissions('<schema-name>', 'Schema');

目前使用者的物件範圍權限:

SELECT *
FROM sys.fn_my_permissions('<schema-name>.<object-name>', 'Object');

檢視在 Fabric 倉庫中明確授與使用者的權限

當透過 SQL 連接字串 連接到 Fabric 倉庫或 SQL 分析端點時,擁有提升權限的使用者可透過系統檢視查詢已授權的權限。 此查詢不會回傳使用者透過 Fabric 工作區角色或項目所獲得的權限。

SELECT DISTINCT pr.principal_id, pr.name, pr.type_desc,
    pr.authentication_type_desc, pe.state_desc, pe.permission_name
FROM sys.database_principals AS pr
INNER JOIN sys.database_permissions AS pe
    ON pe.grantee_principal_id = pr.principal_id;

Fabric 倉庫中的資料保護功能

在 Warehouse 和 SQL 分析端點中,你可以限制對特定欄位和資料表中特定列的存取,並對非管理員隱藏敏感資料。