验证和更改 MSDE 系统管理员密码

概要

本文分步讨论了可用于更改 SQL Server sa(系统管理员)密码的步骤。

能够将 Microsoft SQL Server Desktop Engine (MSDE) 2000 版本或更早版本配置为在混合身份验证模式下运行。 sa 账户在安装过程当中建立,而且 sa 具备在 SQL Server 环境中的彻底权限。默认状况下, sa 密码为空 (NULL),除非您在运行 MSDE 安装程序时更改了该密码。为符合安全最佳方案的要求,必须在第一次使用时将 sa 密码更改成强密码。

 

如何验证 SA 密码是否为空

1. 在正在链接到的 MSDE 实例的宿主计算机中,打开命令提示符窗口。
2. 在命令提示符处键入如下命令,而后按 Enter 键:

osql -U sa

这样能够经过 sa 账户链接到 MSDE 的本地默认实例。要链接到您的计算机上安装的命名实例,请键入:

osql -U sa -S servername\instancename

随即将出现如下提示:

Password:
3. 再次按 Enter 键。此操做将为 sa 传递一个 NULL(空)密码。

若是按 Enter 键后出现如下提示,则您对 sa 账户没有密码:

1>

为了符合安全方案的要求,Microsoft 建议您建立非空的强密码。

可是,若是收到如下错误信息,则表示您输入的密码不正确。此错误信息表示已为 sa 账户建立了密码:
"Login Failed for user 'sa'."
如下错误信息表示运行 SQL Server 的计算机设置为只限 Windows 身份验证:
Login failed for user 'sa'.Reason:Not associated with a trusted SQL Server connection.
在 Windows 身份验证模式下没法验证 sa 密码。但能够建立 sa 密码,以便 sa 账户在之后身份验证模式更改成混合模式时仍然是安全的。

若是您收到如下错误信息,则表示 SQL Server 可能未运行,或者您可能为安装的 SQL Server 的命名实例提供了错误名称:
[Shared Memory]SQL Server does not exist or access denied.
[Shared Memory]ConnectionOpen (Connect()).

 

如何更改 SA 密码

1. 在正在链接到的 MSDE 实例的宿主计算机中,打开命令提示符窗口。
2. 键入下面的命令,而后按 Enter 键:

osql -U sa

Password:提示符下,按 Enter 键(若是密码为空)或键入当前密码。这样能够使用 sa 账户链接到 MSDE 的本地默认实例。要使用 Windows 身份验证进行链接,请键入此命令: use osql -E

3. 在各个单独的行内键入下列命令,而后按 Enter 键:
   sp_password @old = null, @new = 'complexpwd',  @loginame ='sa' 
   go
						

注意:确保将“complexpwd”替换为新的强密码。强密码包括字母数字和特殊字符以及大小写字符的组合。

您将收到如下提示信息,表示已成功更改密码:
Password changed.

 

如何肯定或更改身份验证模式

重要说明:本文包含有关修改注册表的信息。修改注册表以前,必定要备份注册表,而且必定要知道在发生问题时如何还原注册表。有关如何备份、还原和编辑注册表的信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
256986 ([url]http://support.microsoft.com/kb/256986/EN-US/[/url]) Microsoft Windows 注册表说明

警告:注册表编辑器使用不当可致使严重问题,可能须要从新安装操做系统。Microsoft 不能保证您能够解决因注册表编辑器使用不当而致使的问题。使用注册表编辑器须要您自担风险。


若是不能肯定如何验证 MSDE 安装的身份验证模式,能够查看相应的注册表项。默认状况下,对于 Windows 身份验证,Windows LoginMode 注册表子项的值设置为 1。若是启用了混合模式身份验证,则此值为 2。

LoginMode 子项的位置取决于您是将 MSDE 做为默认 MSDE 实例安装仍是做为命名实例安装。若是 MSDE 是做为默认实例安装的,则 LoginMode 子项位于如下注册表子项中:
HKLM\Software\Microsoft\MSSqlserver\MSSqlServer\LoginMode
若是 MSDE 是做为命名实例安装的,则 LoginMode 子项位于如下注册表子项中:
HKLM\Software\Microsoft\Microsoft SQL Server\%InstanceName%\MSSQLServer\LoginMode
注意:切换身份验证模式以前,必须设置 sa 密码,以避免暴露潜在的安全漏洞。

有关其余信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
274773 ([url]http://support.microsoft.com/kb/274773/EN-US/[/url]) FIX:If You Change Windows Security to Windows/SQL Security the SA Password is Blank
要从混合模式切换到集成 (Windows) 身份验证模式,请按如下步骤操做:
1. 要中止 MSSQLSERVER 以及全部其余相关服务(如 SQLSERVERAgent),请在“控制面板”中打开服务程序。
2. 打开注册表编辑器。要打开注册表编辑器,请依次单击开始运行,而后键入:“regedt32”(不包括引号)

单击肯定

3. 找到如下两个子项之一(取决于 MSDE 是做为默认 MSDE 实例安装的仍是做为命名实例安装的):
HKEY_LOCAL_MACHINE\Software\Microsoft\MSSqlserver\MSSqlServer

- 或者 -

HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\ \MSSQLServer\
4. 在右窗格中,双击 LoginMode 子项。
5. DWORD 编辑器对话框中,将此子项的值设置为 1。确保选择了 Hex 选项,而后单击肯定
6. 从新启动 MSSQLSERVER 和 SQLSERVERAgent 服务以使更改生效。
 

SQL Server 安装的最佳安全方案

下面的每一项都会加强系统的安全性,而且它们都属于任何 SQL Server 安装的标准安全“最佳方案”。
使用非空密码保护 sa 登陆账户。有些蠕虫程序仅当您未对 sa 登陆账户采起安全措施时才会发做。 有关其余信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
313418 ([url]http://support.microsoft.com/kb/313418/EN-US/[/url]) PRB:使用空 (NULL) SA 密码的非安全的 SQL Server 会给蠕虫程序以可乘之机
所以,要确保内置 sa 账户具备强密码,必须按照 SQL Server 联机丛书的“系统管理员 (SA) 登陆”主题中的建议进行操做(即便您从未直接使用 sa 账户)。
阻塞位于 Internet 网关的端口 1433,而后分配 SQL Server 侦听备用端口。
若是在 Internet 网关上必须使用端口 1433,请启用进出过滤功能以防止误用端口。
在 Microsoft Windows NT 账户(而非本地系统账户)下运行 SQLServer 服务和 SQL Server 代理。
启用 Microsoft Windows NT 身份验证,而后启用对成功和失败登陆的审核。而后,中止并从新启动 MSSQLServer 服务。配置您的客户端使用 Windows NT 身份验证。
相关文章
相关标签/搜索