Power BI Report Builder 本地打开 RDL 并连接 Azure SQL
Copyright Notice: This article is an original work licensed under the CC 4.0 BY-NC-ND license.
If you wish to repost this article, please include the original source link and this copyright notice.
Source link: https://v2know.com/article/1318
背景
项目原本用 QuestPDF 在 Azure Functions 里直接生成 PDF。为了验证 Power BI Report Builder 是否能替代这部分报表输出,我们先做了两个本地 .rdl 文件:
- [TaxCategoryExtensionCountReport.rdl](C:/Workspace_New/shori-jokyo-management-functions/shori-jokyo-management-functions/Features/Reports/TaxCategoryExtensionCount/TaxCategoryExtensionCountReport.rdl)
- [TaxCategoryEstimatedExtensionCountReport.rdl](C:/Workspace_New/shori-jokyo-management-functions/shori-jokyo-management-functions/Features/Reports/TaxCategoryEstimatedExtensionCount/TaxCategoryEstimatedExtensionCountReport.rdl)
这两个 RDL 复用了项目现有 SQL,并保留了 StartDate / EndDate 两个参数。
遇到的问题
在 Power BI Report Builder 里配置数据源后,点击 Test Connection 时,立即弹出“Azure SQL の資格情報を入力してください”的凭据窗口。
这不是连接失败,而是 RDL 本身告诉 Report Builder:这个数据源需要运行时提示用户输入凭据。
原因是 RDL 的数据源配置里有这个节点:
<Prompt>Azure SQL の資格情報を入力してください</Prompt>
在 Report Builder/SSRS/RDL 语义里,Prompt 表示“运行或测试连接时提示用户输入数据源凭据”。所以即使连接串里写了 User ID / Password,Report Builder 仍然可能弹出凭据输入框。
修复方式
我把两个 RDL 里的 <Prompt> 节点删掉了。
修改前:
<ConnectionProperties>
<DataProvider>SQL</DataProvider>
<ConnectString>...</ConnectString>
<Prompt>Azure SQL の資格情報を入力してください</Prompt>
</ConnectionProperties>
修改后:
<ConnectionProperties>
<DataProvider>SQL</DataProvider>
<ConnectString>...</ConnectString>
</ConnectionProperties>
这样 Report Builder 不会再因为 RDL 自身的 Prompt 配置强制弹出凭据窗口。
推荐的数据源配置
连接串里建议不要写密码,只写服务器和数据库:
Data Source=ika-sql-dev.database.windows.net,1433;Initial Catalog=free-sql-db-4988993;Encrypt=true;TrustServerCertificate=true;Connect Timeout=30
然后在 資格情報 / Credentials 页单独配置:
User name: sqladminuser
Password: local.settings.json 里的 SqlDatabase__Password
不要选择 Windows credentials。这里连接的是 Azure SQL,应该使用 SQL 用户名和密码。
注意事项
如果连接串里出现类似这种内容:
Password=xxxx;Test;Encrypt=true
而 Test 不是密码的一部分,就要删掉。连接串里的每一段都必须是 key=value 形式,单独的 Test; 会破坏连接串格式。
结果
修复后,RDL 文件仍然不保存真实密码,安全性更好;Report Builder 里可以手动配置凭据,然后点击 Test Connection 和 Run 来查看带数据的报表。
This article was last edited at