如何在 Micorsoft Azure / Microsoft Synapse 无服务器 SQL 池服务中实现外部表的行级安全功能?

问题描述

我正在查看一个 Data Lake csv 文件,并想在 Microsoft Synapse 的无服务器 sql 池中创建一个外部表。目标是在适当的行级安全约束下查询文件

在专用服务器上创建外部表时,我可以查询具有适当行级安全约束的文件

如何为无服务器 sql 池上的外部表设置行级安全性?

解决方法

遗憾的是,目前无服务器 SQL 池不支持行级安全性。

您能否在我们的用户声音中为此投票? https://feedback.azure.com/forums/307516-sql-data-warehouse?category_id=171048

,

您不能按原样使用该功能。无服务器上的 T-SQL support 是有限的。

例如CREATE FUNCTION isn't supported

Azure Synapse Analytics 中的无服务器 SQL 池不支持此语法。


您当然可以尝试使用 Serverless 支持的视图来 DIY。

  • 在下图中,权利将成为您将创建的另一个 CSV 和 EXTERNAL TABLE。
  • 您必须找到正确的函数来获取 View 的 SELECT 查询的当前用户和/或角色,或者通过来自您维护自己上下文的其他地方的一些包装器代码提供它。

免责声明:我没有在 Serverless 中做过这件事,所以不能肯定。

enter image description here