簡體   English   中英

如何在 Azure 數據倉庫(突觸)中授予架構級別權限?

[英]How to give Schema Level permission in Azure Data Warehouse (Synapse)?

在我們的 Azure SQL 數據倉庫(突觸)中,我們有兩個模式dbostaging 我想為我的Azure Active Directory 組用戶僅授予“dbo”架構的架構級別權限。 我正在尋找的預期行為是,在授予此權限后, Azure Active Directory 組用戶在 ssms 中打開數據庫時不應看到staging架構。 我嘗試了以下方法來創建用戶並授予權限,但用戶仍然可以在他們的 ssms 中看到staging模式。

  1. 我使用以下命令創建了用戶並添加了db_datareader角色:
CREATE USER [Azure Active Directory Group] FROM EXTERNAL PROVIDER WITH DEFAULT_SCHEMA = dbo;
EXEC sp_addrolemember 'db_datareader', 'Azure Active Directory Group'
  1. 然后使用以下方式授予架構級別權限:
GRANT SELECT ON SCHEMA::dbo TO [Azure Active Directory Group]
  1. 以下查詢返回:
select pr.name,
       pr.type_desc,
       pe.permission_name,
       pe.state_desc,
       pe.class_desc,
       object_name(pe.major_id)

FROM sys.database_principals AS pr
JOIN sys.database_permissions AS pe
    ON pe.grantee_principal_id = pr.principal_id where name='Azure Active Directory Group Users';

在此處輸入圖像描述

有誰知道我如何給予架構級別的權限,我被卡住了! 納克斯

db_datareader : db_datareader 固定數據庫角色的成員可以從所有用戶表中讀取所有數據。 這意味着db_datareader角色可以查看所有模式。 所以我們需要撤銷這個權限。

解決問題的方法有兩種:

  1. 撤銷db_datareader權限並將權限授予用戶。
EXEC sp_droprolemember 'db_datareader', 'Azure Active Directory Group'

GRANT SELECT ON SCHEMA::dbo TO [Azure Active Directory Group]
  1. 我們還可以添加自定義角色並授予角色權限。
CREATE ROLE <Role_Name>; 

GRANT SELECT ON schema::dbo TO <Role_Name>;

EXEC sp_addrolemember '<Role_Name>', 'Azure Active Directory Group'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM