创建从 Crystal 报告到 Azure Synapse Analytics 的服务主体连接

Create Service Principle Connection from Crystal Reports to Azure Synapse Analytics

我将数据保存在 Azure Data Lake Gen 2 存储容器中。我想根据需要为使用 SQL 的 Crystal 报告中编写的现有报告提供此数据。

在开发过程中,我通过本地计算机上的 ODBC 连接使用了自己的 Azure AD 登录。我可以访问 Synapse 环境和数据湖。这很成功,虽然速度很慢,但提取了所有需要的信息。

要正确部署此解决方案,我需要删除我的 AAD 凭据并使用预配服务原则。我已经给出了从数据湖读取的服务原则,并将该原则添加到 SQL 数据库中。现在卡在怎么用原理连接Crystal Reports.

我已经尝试过与我的 AAD 相同的身份验证类型,但现在我使用的是 clientID 而不是电子邮件。因此,当系统提示输入连接详细信息时,它希望您登录并且不接受 clientID。

有人对如何使用这种方式或任何其他方式连接到 Crystal 报告有任何建议吗?

此外:我的组织不希望此用户或应用注册具有受限权限,因此将它们添加到 RBAC“synapse admin”是行不通的。

谢谢 汤姆

找到解决方法。

在 Azure 门户上创建服务帐户用户。前往 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 reader 角色。