如何对操作系统的系统管理员 SQL Server 2005 更难进行不需要的访问

文章翻译 文章翻译
文章编号: 932881 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

简介

Microsoft SQL Server 2005 安装程序创建一个您安装的每个服务的本地 Windows 组。 SQL Server 2005 安装程序将为每个服务服务帐户添加到其各自的组。 SQL Server 故障转移群集安装的 Windows 域组使用相同的方式。 由域管理员身份运行 SQL Server 2005 安装程序之前,必须创建这些域的组。 所有 Windows NT 权限和所需的特定服务的权限由系统访问控制列表 (SACL) 为每个 Windows 组都添加。域管理员不授予直接给服务帐户的权限。

此外,SQL Server 2005、 SQL Server 代理和 BUILTIN\Administrators 组创建的 Windows 组被授予 SQL Server 2005 SYSADMIN 固定的服务器角色中提供的 SQL Server 2005 登录。 此配置使是通过使用 Windows NT 身份验证连接登录到 SQL Server 2005 这些组的成员的任何帐户。 因为用户具有 SQL Server SYSADMIN 固定的服务器角色中的组成员身份,用户登录到 SQL Server 2005 作为 SQL Server 2005 系统管理员。(用户已登录通过使用 sa 帐户)。 不受然后,用户都有限制的访问到 SQL Server 2005 安装,并对其数据。 此外,任何用户都知道的 SQL Server 2005 实例或 SQL Server 代理服务帐户密码可以使用服务帐户登录到计算机上。然后,用户可以对 Windows NT 身份验证的连接 SQL Server 2005 作为 SQL Server 管理员。

此外将在您创建的 SQL Server 2005 报告服务 (SSRS) 和全文本搜索服务的 Windows 组被授予 SQL Server 登录名。 但是,不是报表服务和全文本搜索服务中 SYSADMIN 固定的服务器角色设置。

某些 SQL Server 2005 管理员需功能的角色和操作系统的系统管理员联系,以进行严格地分隔的数据库管理员联系。 这些管理员想要 SQL Server 2005 防止不需要由操作系统的系统管理员的访问。

更多信息

如何对操作系统的系统管理员 SQL Server 2005 更难进行不需要的访问

若要使 SQL Server 2005 年,由操作系统的系统管理员的不需要的访问更难,您必须删除 BUILTIN\Administrators 组授予该登录权限。然后,您必须授予直接要 SQL Server 2005 和 SQL Server 代理服务帐户的登录名。 接下来,您必须调配 SYSADMIN 固定的服务器角色中登录。最后,您必须删除他们各自的 Windows 组授予登录名。 若要这样做,请按照下列步骤操作:
  1. 请确保您拥有的帐户是 SYSADMIN 固定的服务器角色的成员。此帐户不是只通过 BUILTIN\Administrators 组的成员授予 SQL Server 2005 登录权限。
  2. 删除所授予 BUILTIN\Administrators 组的登录权限。若要这样做,请按照下列步骤操作:
    1. 通过使用 ALTER 任何 LOGIN 权限的用户帐户登录到 SQL Server 2005。
    2. 展开 安全性,展开 登录BUILTIN\Administrators,用鼠标右键单击,然后单击 删除
    3. 删除对象 对话框中单击 确定
    注意删除到 BUILTIN\Administrators 组已被授予该登录后,只依赖于登录到 SQL Server 2005 具有此组成员身份的任何帐户将不再能够访问 SQL Server 2005。

    有关 Microsoft 群集服务 (MSCS) 服务帐户,请参阅"microsoft 群集服务 (MSCS) 服务帐户"部分。
  3. 使用具有 ALTER 任何 LOGIN 权限显式授予 SQL Server 2005 直接向 SQL Server 2005 年和 SQL Server 代理程序使用的服务帐户的登录的帐户。 若要执行此操作执行下面的 SQL 语句
    CREATE LOGIN [<Domain Name>\<SQL Server Service Account>] FROM WINDOWS WITH DEFAULT_DATABASE=[master]
    CREATE LOGIN [<Domain Name >\<SQL Server Agent Service Account>] FROM WINDOWS WITH DEFAULT_DATABASE=[master]
    
  4. 使用的是在 SYSADMIN 的成员帐户固定服务器角色,提供在第 2 步中,在 SYSADMIN 中添加的登录名固定服务器角色
    EXEC master..sp_addsrvrolemember @loginame = N'<Domain Name>\<SQL Server Service Account> ', @rolename = N'sysadmin'
    EXEC master..sp_addsrvrolemember @loginame = N'<Domain Name>\<SQL Server Agent Service Account> ', @rolename = N'sysadmin'
    
  5. 使用具有 ALTER 任何 LOGIN 权限才能删除至 SQL Server 2005 组和 SQL Server 代理 Windows 组授予登录的帐户
    DROP LOGIN [<Computer Name>\<SQLServer2005SQLServerUser>$<Computer Name>$MSSQLSERVER]
    DROP LOGIN [<Computer Name>\<SQLServer2005AgentUser>$<Computer Name>$MSSQLSERVER]
    
甚至您按照这些步骤之后,SQL Server 2005 的服务帐户和 SQL Server 代理服务帐户的密码必须保持机密从操作系统的系统管理员。 如果已在 SYSADMIN 固定服务器角色中设置 MSCS 服务帐户,MSCS 服务帐户密码必须也将保密从操作系统的系统管理员。 如果操作系统的系统管理员知道 SQL Server 2005 的服务帐户或 SQL Server 代理服务帐户密码,操作系统的系统管理员可以使用服务帐户登录到计算机。操作系统的系统管理员登录到计算机之后,操作系统的系统管理员可以连接到 SQL Server 2005 实例,作为 SQL Server 管理员。

若要使操作系统的系统管理员了解 SQL Server 2005 年和 SQL Server 代理程序使用的服务帐户的密码 SQL Server 系统管理员必须能够设置服务帐户的新密码。 在大多数的情况中 SQL Server 2005 系统管理员不是操作系统的管理员。 因此,必须编写专用的实用程序,以提供此功能。例如对于您可以创建一种受信任的服务,使用 SQL Server 2005 系统管理员可以更改为使用 SQL Server 2005 的服务帐户密码。 当前,Microsoft 不提供此服务。

Microsoft 群集服务 (MSCS) 服务帐户

在 SQL Server 2005 故障转移群集安装 MSCS 服务帐户依赖于登录到运行 IsAlive 检查 SQL Server 2005 BUILTIN\Administrators 组的成员身份。 如果从故障转移群集中删除 BUILTIN\Administrators 组必须明确地授予登录到 SQL Server 2005 故障转移群集上的 MSCS 服务帐户权限。 若要执行此操作在 SQL Server 2005 实例执行下面的 SQL 语句
CREATE LOGIN [<Domain Name>\<MSCS Service Account>] FROM WINDOWS WITH DEFAULT_DATABASE=[master]
SQL Server 2005 Service Pack 2 添加了新的诊断功能,对于 SQL Server 2005 故障转移群集。 群集故障转移前,诊断程序自动捕获 SQL Server 2005 群集资源的状态。 SQL Server 2005 资源动态链接库 (DLL) 会使收集诊断数据更容易,如下所示:
  • SQL Server 2005 资源启动 MSCS 服务帐户的安全上下文 Sqlcmd.exe 实用程序的一个实例。 然后,SQL Server 2005 资源,通过采样各种动态管理视图 (DMV) 的专用的管理员连接 (DAC) 运行 SQL 脚本。
  • 群集故障转移前 SQL Server 2005 资源用于捕获 SQL Server 2005 进程的用户转储文件。
由于专用的管理员连接用来收集某些诊断数据,MSCS 服务帐户必须是 SYSADMIN 固定的服务器角色中设置的。 如果您的组织的安全措施意味着 MSCS 服务帐户不能调配该 SYSADMIN 固定服务器角色中,MSCS 服务帐户可以被授予 SYSADMIN 固定的服务器角色中没有设置的 SQL Server 登录。 在这种情况下通常捕获 Sqlcmd.exe 实用程序诊断程序将失败,因为 Sqlcmd.exe 实用程序将无法登录到 SQL Server 2005。 SQL Server 2005 资源 DLL 应能够收集无论 SQL Server 2005 资源 DLL 在 SYSADMIN 中提供的服务帐户是否固定服务器角色的用户转储文件。

必要时登录到 SQL Server 2005 使用的帐户是在 SYSADMIN 固定服务器角色的成员。然后,执行下面的 SQL 语句,将 MSCS 服务帐户添加到 SYSADMIN 固定的服务器角色
EXEC master.sp_addsrvrolemember @loginame = N'<Domain Name>\<MSCS Service Account> ', @rolename = N'sysadmin'

如何更改服务帐户

尽管前面的步骤可能会使操作系统的系统管理员能够连接到 SQL Server 2005 更难,前面的步骤进行的就是它更麻烦,若要更改服务帐户为 SQL Server 2005 和 SQL Server 代理。若要将服务帐户为 SQL Server 2005 和 SQL Server 代理,请按照下列步骤操作:
  1. 将新的服务帐户或服务帐户添加到 Windows 组或 SQL Server 和 SQL Server 代理为您创建的组。
  2. 使用具有 ALTER 任何 LOGIN 权限才能创建新的服务帐户的 SQL Server 2005 登录的帐户。 要执行此操作从具有 ALTER 任何 LOGIN 权限的帐户执行下面的 SQL 语句
    CREATE LOGIN [<Domain Name>\<New SQL Server Service Account>] FROM WINDOWS WITH DEFAULT_DATABASE=[master]
    CREATE LOGIN [<Domain Name>\<New SQL Server Agent Service Account>] FROM WINDOWS WITH DEFAULT_DATABASE=[master]
    
  3. 使用的 SYSADMIN 固定的服务器角色,才能执行下面的 SQL 语句中提供的帐户。
    EXEC master..sp_addsrvrolemember @loginame = N’ <Domain Name>\<New SQL Server Service Account> ', @rolename = N'sysadmin'
    EXEC master..sp_addsrvrolemember @loginame = N’ <Domain Name>\<New SQL Server Agent Service Account> ', @rolename = N'sysadmin'
    
    注意 此语句将 SQL Server 2005 的服务帐户和 $ SQL Server 代理服务帐户添加到 SYSADMIN 固定的服务器角色。
  4. 通过使用 SQL Server 配置管理器更改为相应的服务服务帐户。 若要这样做,请按照下列步骤操作:
    1. 在 SQL Server 配置管理器中单击 SQL Server 2005 服务
    2. 用鼠标右键单击想要修改,服务,然后单击 属性
    3. 单击 登录 选项卡,然后输入您的 $ 服务以便使用用户帐户信息。
    4. 当您完成输入帐户信息后,请单击 确定
    注意当您更改服务帐户时,SQL Server 配置管理器将提示您重新启动服务。
  5. 使用具有 ALTER 任何 LOGIN 权限才能删除由 SQL Server 2005 的服务帐户和 SQL Server 代理服务帐户所使用的登录的帐户。 若要执行此操作执行下面的 SQL 语句
    DROP LOGIN [<Domain Name>\<Old SQL Server Service Account>]
    DROP LOGIN [<Domain Name>\<Old SQL Server Agent Service Account>]
    
注意您可能没有授予任何新的 Windows NT 权限或给新的服务帐户的权限,因为到它们各自的 Windows 组,在第 1 步中添加新的服务帐户。

若要审核流程的建议

如果要防止不需要的访问,由操作系统的系统管理员 SQL Server,您还应审核下列进程:
  • 审核启动和停止的基于 Windows 的服务器。
  • 审核启动和停止 SQL Server 2005 的服务和的 SQL Server 代理服务。
  • 审核访问在哪个 SQL Server 存储数据库文件、 数据文件、 日志文件和数据库的备份文件的目录。
  • 审核对 SQL Server 2005 的服务帐户和 SQL Server 代理服务帐户更改。
  • 审核网络登录和 $ 计算机登录,由 SQL Server 2005 的服务帐户、 SQL Server 代理的服务帐户或将 MSCS 服务帐户。

NT AUTHORITY\SYSTEM 帐户

NT AUTHORITY\SYSTEM 帐户也被授予 SQL Server 登录。 NT AUTHORITY\SYSTEM 帐户是 SYSADMIN 固定的服务器角色中设置的。 不要删除此帐户或将其从 SYSADMIN 固定的服务器角色中删除。 NTAUTHORITY\SYSTEM 帐户用于由 Microsoft 更新和 Microsoft SMS SQL Server 2005 安装应用服务包和修补程序。 SQL 编写器服务还使用 NTAUTHORITY\SYSTEM 帐户。

此外,如果在单用户模式下启动,则 SQL Server 2005,任何 BUILTIN\Administrators 组中具有成员身份的用户可以连接到 SQL Server 2005 作为 SQL Server 管理员。 用户可以连接的而不考虑是否 BUILTIN\Administrators 组已被授予在 SYSADMIN 固定服务器角色中提供的服务器登录。 此行为是设计使然。 此行为旨在用于数据恢复方案。

有关 SQL Server 2005 的安全最佳做法的详细信息,请参阅"安全注意事项进行了 SQL Server 安装"主题中 SQL Server 2005 丛书联机。

参考

有关 SQL Server 安装的安全注意事项的详细信息,请访问以下 Microsoft TechNet 网站:
http://technet.microsoft.com/en-us/library/ms144228.aspx

属性

文章编号: 932881 - 最后修改: 2009年2月13日 - 修订: 3.1
这篇文章中的信息适用于:
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
关键字:?
kbmt kbpubtypekc kbcode kbinfo kbhowto KB932881 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 932881
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com