回到顶端
如何验证 SA 密码是否为空
在正在连接到的 MSDE 实例的宿主计算机中,打开命令提示符窗口。
在命令提示符处键入以下命令,然后按 Enter 键:
osql -U sa
这样可以通过 sa 帐户连接到 MSDE 的本地默认实例。要连接到您的计算机上安装的命名实例,请键入:
osql -U sa -S servername\instancename
随即将出现以下提示:
Password:
再次按 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 密码
在正在连接到的 MSDE 实例的宿主计算机中,打开命令提示符窗口。
键入下面的命令,然后按 Enter 键:
osql -U sa
在 Password:提示符下,按 Enter 键(如果密码为空)或键入当前密码。这样可以使用 sa 帐户连接到 MSDE 的本地默认实例。要使用 Windows 身份验证进行连接,请键入此命令: use osql -E
在各个单独的行内键入下列命令,然后按 Enter 键:
sp_password @old = null, @new = 'complexpwd', @loginame ='sa'
go
注意:确保将“complexpwd”替换为新的强密码。强密码包括字母数字和特殊字符以及大小写字符的组合。
您将收到以下提示信息,表示已成功更改密码:
Password changed.
回到顶端
如何确定或更改身份验证模式
重要说明:本文包含有关修改注册表的信息。修改注册表之前,一定要备份注册表,并且一定要知道在发生问题时如何还原注册表。有关如何备份、还原和编辑注册表的信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
256986 (http://support.microsoft.com/kb/256986/EN-US/ ) 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 (http://support.microsoft.com/kb/274773/EN-US/ ) FIX:If You Change Windows Security to Windows/SQL Security the SA Password is Blank
要从混合模式切换到集成 (Windows) 身份验证模式,请按以下步骤操作:
要停止 MSSQLSERVER 以及所有其他相关服务(如 SQLSERVERAgent),请在“控制面板”中打开服务程序。
打开注册表编辑器。要打开注册表编辑器,请依次单击开始和运行,然后键入:“regedt32”(不包括引号)
单击确定。
找到以下两个子项之一(取决于 MSDE 是作为默认 MSDE 实例安装的还是作为命名实例安装的):
HKEY_LOCAL_MACHINE\Software\Microsoft\MSSqlserver\MSSqlServer
- 或者 -
HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\<Instance Name>\MSSQLServer\
在右窗格中,双击 LoginMode 子项。
在 DWORD 编辑器对话框中,将此子项的值设置为 1。确保选择了 Hex 选项,然后单击确定。
重新启动 MSSQLSERVER 和 SQLSERVERAgent 服务以使更改生效。
回到顶端
SQL Server 安装的最佳安全方案
下面的每一项都会增强系统的安全性,并且它们都属于任何 SQL Server 安装的标准安全“最佳方案”。
使用非空密码保护 sa 登录帐户。有些蠕虫程序仅当您未对 sa 登录帐户采取安全措施时才会发作。 有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
313418 (http://support.microsoft.com/kb/313418/EN-US/ ) 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 身份验证。