创建从 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 视图返回数据