关于 Crystal Reports 中的 SQL Server 数据库访问
使用 Crystal Reports for Visual Studio 时,可以通过以下任一种来源访问 SQL Server 数据库:
使用文件中存储的数据库连接信息,直接通过报表文件访问。
嵌入式 Crystal Reports 设计器会在创建或修改报表时配置数据库连接信息。每当显示报表时,报表引擎会自动将此信息传送到数据库。
通过 Crystal Reports .NET API 代码访问。
可以用代码(在运行时通过编程方式与报表进行交互)重新配置数据库连接信息。
不论通过哪个来源访问报表,都面临相同的安全性问题:如何防止数据库受到恶意攻击?
将 Windows 身份验证与集成安全性配合使用
为了获得最高的安全性,Microsoft 建议通过 Windows 身份验证使用集成安全性。这种配置意味着应用程序中不需要用户 ID 和密码字符串。
有关说明如何使用集成安全性将 Crystal 报表集成到 Web 或 Windows 应用程序的教程,请参见“教程:使用集成安全性登录安全的 SQL Server 数据库”。
将 SQL Server 身份验证与限制访问数据库帐户配合使用
如果要对数据库使用 SQL Server 身份验证,您必须执行额外的步骤以获得有效的安全性。
绝不要在代码中使用系统管理员 ID 和密码,因为这样会导致严重的安全性风险。相反,应执行以下步骤:
- 创建一个受限访问数据库帐户。
- 配置此帐户,只允许其访问数据库中所需的表。
- 对于每个可访问的表,授予只能运行 SELECT 语句的权限。
Microsoft 还建议最好加密您的用户 ID 和密码。有关如何加密用户 ID 和密码的信息,请参见 MSDN 中的安全性信息。
要完成说明如何使用 SQL 身份验证将 Crystal 报表集成到 Web 或 Windows 应用程序的教程,请参见“教程:使用 SQL 身份验证登录安全的 SQL Server 数据库”。