2024年4月11日发(作者:)

IIS、和SQLServer的安全性问题

此时,IIS 将在一个权限有限的自定义帐户下运行。任何访问者访问您应用程序的网页时,

都将以这个自定义用户身份运行,且只具有该自定义用户的验证权限。

授权 DotNetKB 用户帐户访问 SQL Server

然后,您需要为该自定义用户授予访问数据库 (DotNetKB) 的相应权限。为此,您可以使

用 Microsoft SQL Server 企业治理器或编写一个自定义脚本,以创立一个这样的用户并授予

其访问特定对象的权限。本文介绍如何使用 SQL Server 企业治理器完成此操作。

留意:尽管 Visual Studio .NET 2022 具有与 SQL Server 兼容的很多强大的集胜利能,

但也不允许从 Visual Studio .NET 2022 中轻松治理用户和用户权限。在大型的组织和团队中,

这些高级任务通常由数据库治理员完成。 因此,启动 SQL Server 企业治理器之后,您

可以根据以下步骤将自定义用户 (DotNetKB) 添加数据库中。

·在左侧的树视图中,绽开节点以显示 DotNetKB 数据库。在我的计算机上,树视图的构

造如下:Console Root SQL Server Group (LOCAL) (Windows NT) Databases

DotNetKB。

·然后,在数据库下的 Users(用户)节点上单击鼠标右键,并选择 New

(新建数据库用户...)。显示 Database User Properties - New User(数据库用户属性 - 新

建用户)对话框时,从 Login name(登录名)下拉框中选择 ()。

·显示 SQL Server Login Properties - New Login(SQL Server 登录属性 - 新建登录)

对话框时,选择 General(常规)选项卡,并在 Name(名称)输入框中输入 DotNetKB。

确保选中 Windows Authentication(Windows 验证)单项选择按钮,并从 Domain(域)

下拉框中选择自定义用户帐户所在的计算机的名称。然后从 Database(数据库)下拉框中选

择 DotNetKB。

·现在,选择 Databases(数据库)选项卡,在对话框顶部的列表中找到 DotNetKB 数据

库并选中它。然后,确保选中对话框底部列表中的 public(公共)角色。最终,单击对话框底

部的 OK(确定)按钮,保存您的更改。

然后,您需要为 DotNetKB 数据库中的全部存储过程和自定义函数添加执行权限。为此,

您只需为 public(公共)角色授予权限。您可以将权限授予 DotNetKB 用户,这样将使以后

的登录(当这些用户获得访问 DotNetKB 的权)更简单执行存储过程,而不需要为每个用户

添加新的权限。

下面是为 DotNetKB 数据库中的存储过程和函数授予执行权限的步骤:

·突出显示树视图中 DotNetKB 数据库下的 Users(用户)节点,以显示此数据库的用户

列表。找到 DotNetKB 用户并在其上双击,翻开 Database Users Properties(数据库用户

属性)对话框。

·突出显示(选中)public(公共)角色时,单击 (属性...)按钮,翻开 Database

Role Properties(数据库角色属性)对话框。然后单击 (权限...)按钮,显示

数据库对象和权限设置列表。

·选中对话框顶部 Database role(数据库角色)下拉列表中的 public(公共)角色之后,

找到为此数据库定义的全部存储过程和自定义函数(可能需要绽开对话框才能看到全名),并确

保选中各项旁边的 EXECUTE(执行)复选框。您可能会发觉某些系统对象的其他一些复选框

也被选中了,请不要更改这些选项。

·最终,设置全部的 EXECUTE(执行)权限后,单击 OK(确定)按钮,保存更改并关闭

对话框。依次单击 OK(确定)按钮,直到全部对话框均被关闭。

至此,您已为 IIS 创立了自定义用户,并设置了该用户在 SQL Server 中的相应权限。现

在,您需要在 Web 工程中进展一个配置更改,确保 使用同一个用户帐户

执行对 SQL Server 的全部调用。

设置您的 应用程序以模拟 DotNetKB 用户

为 IIS 下运行的 Web 应用程序生成坚实牢靠的配置的最终一个步骤是:配置

Web 应用程序,使之能够承受来自 IIS 的 Windows 用户标识并能用于访问其他操

作系统资源。为此,您只需在 根文件中输入一行代码。

修改后的 文件如下所示:

... 其他要素 ...

... 其他要素 ...

请留意,您只需添加 元素并将模拟特性设置为 true(真)。不必输入用户帐户或密码,由

于这些信息将由 IIS 供应。也就是说,即使其他人能够读取您的配置文件,他们也无法确定使

用哪些标识凭据来执行您的 Web 应用程序。