我们公司正在使用 Synapse Link 导出 Dynamic 365 数据。通过突触链接,表会自动在 Synapse LakeDatabase 中创建。
在这些原始表之上,我们希望在将数据集移交给业务用户之前进行一些清理/转换。因此,我们使用 thelake 数据库表在无服务器 SQL 数据库上创建了视图。
现在的问题是向企业用户授予访问权限。看来业务用户需要访问 Azure datalake、Synapse Lake 数据库和 Serveless SQL 数据库才能读取 sql 视图。
目前我已授予以下访问权限: Azure DataLake 容器:通过 ACL 读取和执行访问 SQL 数据库:选择视图上的访问权限 Lake 数据库:数据库的读取访问权限
这里的问题是业务用户可以读取 Lake 数据库中的原始表。但我们希望限制对 Lake 数据库中原始表的访问,并且只授予对 Serveless SQL 数据库中转换视图的访问权限。
有办法实现上面的效果吗?
目前我已授予以下访问权限: Azure DataLake 容器:通过 ACL 读取和执行访问 SQL 数据库:选择视图上的访问权限 Lake 数据库:数据库的读取访问权限
这里的问题是业务用户可以读取 Lake 数据库中的原始表。但我们希望限制对 Lake 数据库中原始表的访问,并且只授予对 Serveless SQL 数据库中转换视图的访问权限。
如果您想限制用户对原始表的访问并授予对视图的访问权限,您可以按照以下步骤操作:
使用以下代码授予视图权限:
GRANT SELECT ON <schema>.<viewName> TO [<userName>];
使用以下代码撤销对原始表的权限:
REVOKE SELECT ON <schema>.<tableName> FROM [<userName>];
那么用户在访问raw表时就会受到限制,如下图:
但是,用户将能够访问该视图,如下所示: