[英]Handle error "External tables are not supported with the provided data source type" in Azure SQL DB?
[英]Restricting direct access to Azure sql external data source
我嘗試在 Azure Synapse ondemand 數據庫中創建 Row-Level-Security。 數據存儲在 Azure Datalake Storage Gen 2 中。腳本運行良好,但受限用戶組的成員仍然可以手動運行 OPENROWSET 命令並查看所有數據。 有人知道我缺少什么部分嗎?
CREATE DATABASE SCOPED CREDENTIAL WorkspaceIdentity
WITH IDENTITY = 'Managed Identity'
GO
CREATE EXTERNAL DATA SOURCE [DataLakeStorage] WITH (LOCATION = N'https://theorders.dfs.core.windows.net/', CREDENTIAL = WorkspaceIdentity )
GO
GRANT REFERENCES ON DATABASE SCOPED CREDENTIAL::[WorkspaceIdentity] TO [MyTestGroup];
GO
CREATE VIEW [model].[my_orders] as
SELECT * FROM
OPENROWSET(BULK 'dimorders/*.parquet',
DATA_SOURCE = 'DataLakeStorage', FORMAT = 'parquet') as rows
WHERE [UserName] = suser_name()
GO
GRANT SELECT ON [model].[my_orders] TO [MyTestGroup]
GO
無限制接收所有數據的示例腳本
SELECT * FROM
OPENROWSET(BULK 'dimorders/*.parquet',
DATA_SOURCE = 'DataLakeStorage', FORMAT = 'parquet') as rows
我建議您按照以下步驟操作,其中顯示了如何授予用戶訪問特定數據庫的權限。
注意 - 需要為每個 SQL 池運行以下步驟,以授予用戶訪問所有 SQL 數據庫的權限,但在“工作區范圍的權限”部分中,您可以在工作區級別為用戶分配系統管理員角色。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.