安全性:创建受限访问数据库帐户

Note注意

此信息适用于只使用 SQL Server 身份验证的数据库配置。Windows 身份验证不需要受限访问数据库帐户,因为它使用的是集成安全性。

当您从 Web 应用程序访问数据库时,必须解决安全性问题。尤其重要的是,应将用来访问数据库的帐户的作用域限制为 Web 应用程序确实需要的那些功能。

例如,Crystal Reports 文档教程中使用罗斯文数据库来显示那些基于其“客户”表和“订单”表的报表。因此,要求连接到罗斯文数据库的受限访问数据库帐户只需要两种权限:

  • 访问罗斯文数据库的“客户”和“订单”表的权限。
  • 在这两个表中 SELECT 记录的权限(但没有 INSERT、UPDATE 或 DELETE 记录的权限)。

在本节中,您将学习如何创建受限访问数据库帐户。

Note注意

创建此受限访问数据库帐户并不阻止您使用“sa”系统管理员帐户访问此数据库(进行完全控制)。相反,您创建的是一个仅供 Web 应用程序使用的辅助帐户。

这些说明对于 MSDE 和 SQL Server 均同样适用。

  1. 键入以下命令登录到 MSDE 或 SQL Server。

    • 用系统管理员密码替换此占位符:[password]。
    • 用数据库服务器名称替换此占位符:[serverName]。
<!-- end list -->

    osql -U sa -P [password] -S [serverName]
  1. 键入“USE master”以切换到主数据库,接着在下一行中键入“GO”,然后按 Enter。

    USE master GO

  2. 运行数据库脚本“sp_addlogin”,并包括以下命令行参数:想用于受限访问数据库帐户的名称、密码及其应用到的数据库。

在命令行参数中自定义以下值:

  - 创建一个受限访问数据库帐户名,例如“limitedPermissionAccount”。
  - 在以下占位符出现的地方创建一个由此受限访问帐户使用的新密码:\[new\_password\]。记录下此密码,因为某些教程需要使用该密码。

<!-- end list -->

    sp_addlogin 'limitedPermissionAccount','[new_password]','Northwind'
    GO
  1. 切换到罗斯文数据库。

    USE Northwind
    GO
    
  2. 运行数据库脚本“sp_grantdbaccess”,并将新建的受限访问数据库帐户名传入此脚本中。

    sp_grantdbaccess 'limitedPermissionAccount'
    GO
    
  3. 对于“客户”表,为您创建的新受限访问数据库帐户授予在“客户”和“订单”表上的 SELECT 权限。

    GRANT SELECT ON Customers
    TO limitedPermissionAccount
    GO
    GRANT SELECT ON Orders
    TO limitedPermissionAccount
    GO
    
  4. 键入“exit”退出 osql 命令行,然后按 Enter 键。

    exit
    

    您已成功创建了受限访问帐户,并只授予其罗斯文数据库的“客户”和“订单”表的 SELECT 访问权限。

这就完成了连接到罗斯文数据库的“客户”表所需的受限访问帐户设置工作。现在,您已准备就绪,可以完成使用 SQL 身份验证访问罗斯文数据库的以下任何教程。