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

Posted

技术标签:

【中文标题】创建从 Crystal Reports 到 Azure Synapse Analytics 的服务主体连接【英文标题】:Create Service Principle Connection from Crystal Reports to Azure Synapse Analytics 【发布时间】:2021-11-08 17:12:31 【问题描述】:

我的数据保存在 Azure Data Lake Gen 2 存储容器中。我想为使用 SQL on demand 在 Crystal Reports 中创作的现有报表提供此数据。

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

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

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

是否有人对如何使用这种方式或任何其他方式连接到 Crystal Reports 有任何建议?

另外:我的组织不希望此用户或应用注册具有受限权限,因此将它们添加到 RBAC“突触管理员”将不起作用。

谢谢 汤姆

【问题讨论】:

【参考方案1】:

找到了解决办法。

在 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 读取器角色。

【讨论】:

准备好后将其标记为答案@Tom。

以上是关于创建从 Crystal Reports 到 Azure Synapse Analytics 的服务主体连接的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Visual Studio 2010 中使用 Crystal Reports 创建报表

如何在Visual Studio 2010中使用Crystal Reports创建报表

如何在Visual Studio 2010中创建Crystal Reports [关闭]

Crystal Reports 未使用 Oracle 驱动程序从某些 Oracle 视图返回数据

Crystal Reports 2013:页眉公式字段不一致

Crystal Reports - “您要求的报告需要更多信息”