我有一个Azure SQL服务器和Azure AD上的3个安全组,它们作为外部用户添加到Azure SQL中。Azure SQL具有一个基于登录用户所属的安全组的筛选谓词。当我在SSMS上并以不同用户的身份登录时,我可以看到筛选谓词的过滤。它的工作与预期完全一致。
现在问题来了。
我有一个PowerApps,它使用相同的Azure登录。但是,在登录后,就没有过滤了。我对过滤器谓词在SSMS中的工作方式感到困惑,但在PowerApps演播室中则不然。我在PowerApps中没有Azure连接器--我使用的是Office连接器(如果这是原因的话?)。
如能提供任何帮助,将不胜感激。
发布于 2022-06-20 06:10:59
连接SQL数据源时是否选择了Azure AD Integrated或Windows Authentication (Non-shared)?

如果不是,您是隐式,与PowerApp的所有用户共享连接,而不是利用您设置的AD权限。
REF:https://learn.microsoft.com/en-us/power-apps/maker/canvas-apps/connections/sql-server-security
发布于 2022-06-25 14:49:59
我选择了Azure AD身份验证。本质上,PowerApps和SQL数据库都由同一个AD目录进行身份验证。如前所述,谓词的工作方式与SSMS完全相同。当我以不同的SQL用户登录时,我只能看到数量有限的行。然而,PowerApps (由Azure为允许访问应用程序的用户认证)不尊重RLS。只是好像找不到问题所在。因为这个问题是概念性的,所以我没有粘贴代码。不过,我很高兴这样做。谢谢
发布于 2022-06-25 14:54:54
我已经发布了PowerApps,并试图看看它在发布时是否会尊重RLS。它没有-从而进一步确定RLS不工作。由于我没有Azure AD连接器所需的权限,所以我使用了office组连接器。
https://stackoverflow.com/questions/72677875
复制相似问题