连接到 SQL Server 数据库时如何获得最高的安全性?

关于 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 数据库”