我的数据保存在Azure data Lake Gen 2存储容器中。我想为Crystal Reports中使用SQL按需编写的现有报告提供此数据。
在开发过程中,我通过本地机器上的ODBC连接使用了自己的Azure AD登录。我可以访问Synapse环境和数据湖。这个操作成功了,虽然很慢,但还是取出了所有需要的信息。要正确部署此解决方案,我需要删除AAD信用并使用已配置的服务原则。给出了从数据湖中读取数据的服务原则,并将该原则添加到SQL数据库中。现在我被困在如何使用原则连接到水晶报告。
我已经尝试了与我的AAD相同的身份验证类型,但现在我使用的是clientID而不是电子邮件。因此,当系统提示输入连接详细信息时,它希望您登录,而不接受客户端id。
有人对如何使用这种方式或任何其他方式连接到水晶报告有任何建议吗?
还有:我的组织不希望这个用户或应用程序的权限受到限制,因此将它们添加到RBAC "synapse admin"不会工作。
谢谢汤姆
我找到了解决方法。
在Azure Portal上创建服务帐户用户。转到Synapse Analytics,打开空白SQL脚本,给用户最小的权限。
*USE [master]*
CREATE LOGIN [serviceaccountsynapseuser@company.onmicrosoft.com] FROM EXTERNAL PROVIDER
GRANT CONNECT ANY DATABASE TO [serviceaccountsynapseuser@company.onmicrosoft.com]
GRANT SELECT ALL USER SECURABLES TO [serviceaccountsynapseuser@company.onmicrosoft.com]
*USE [Reporting] (Serverless SQL DB)*
CREATE USER [serviceaccountsynapseuser@company.onmicrosoft.com] FROM EXTERNAL PROVIDER
ALTER ROLE db_datareader ADD MEMBER [serviceaccountsynapseuser@company.onmicrosoft.com]
最后转到存储帐户并赋予用户存储blob阅读器角色。