[英]Cannot connect to Azure Data Warehouse (now called Synapse) using SQLAlchemy
[英]How to give Schema Level permission in Azure Data Warehouse (Synapse)?
在我們的 Azure SQL 數據倉庫(突觸)中,我們有兩個模式dbo
和staging
。 我想為我的Azure Active Directory 組用戶僅授予“dbo”架構的架構級別權限。 我正在尋找的預期行為是,在授予此權限后, Azure Active Directory 組用戶在 ssms 中打開數據庫時不應看到staging
架構。 我嘗試了以下方法來創建用戶並授予權限,但用戶仍然可以在他們的 ssms 中看到staging
模式。
db_datareader
角色:CREATE USER [Azure Active Directory Group] FROM EXTERNAL PROVIDER WITH DEFAULT_SCHEMA = dbo;
EXEC sp_addrolemember 'db_datareader', 'Azure Active Directory Group'
GRANT SELECT ON SCHEMA::dbo TO [Azure Active Directory Group]
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
角色可以查看所有模式。 所以我們需要撤銷這個權限。
解決問題的方法有兩種:
db_datareader
權限並將權限授予用戶。EXEC sp_droprolemember 'db_datareader', 'Azure Active Directory Group'
GRANT SELECT ON SCHEMA::dbo TO [Azure Active Directory Group]
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.