查询分析器,连接时,身份验证使用"使用windows身份验证"
然后,执行:
EXECsp_passwordNULL,'NewPassword','Sa'
企业管理器-->实例名-->安全性-->登录-->双击右边的SA-->更改密码
问:丢失SA密码如何找回?
答:用户操作失误造成密码丢失。有两种方法:
如果数据不多,可重装TNSDB数据库。如果只想找回密码,可将安装盘中的tnsdb.txt文件中的“insertinto
tns_secu_user(c_user_name,c_user_pwd,c_user_code,i_user_type,
c_expiry_date,c_user_lock,c_user_disa,c_who_crea,c_when_crea,
c_who_modi,c_when_modi)values('sa','c12e01f2a13ff5587e1e9e4aedb8242d','',1,'','1','1','','','','')
%”行。其中‘sa’后的‘c12e01f2a13ff5587e1e9e4aedb8242d’字串为sa的密码。
用他来替换tnsdb库中tns_secu_user表中的sa密码。字段为c_user_pwd.
2、sqlserver2000忘记sa密码的解决方法
以“windows身份验证”方式登录SQL查询分析器,然后执行
EXECsp_passwordNULL,'hello','sa'
就可以将sa的密码改为hello了。
3、SQL忘记sa密码修改方法
如果你在NT下(包括2000)装的SQLServer,则可以这样做:
直接打开"查询分析器"(注意不是从"企业管理器"中进入,可以从开始菜单的程序组进去,如果找不到的话,直接在"运行"中输入"isqlw.exe"也可);
选择"Windows身份验证"进入,不需要输入密码,只要你是本机的系统管理员或者域管理员,此时自动成为SQLServer的管理员;
在查询分析器窗口中输入下面的语句直接更改SA密码:
sp_passwordNull,\\\'ok\\\',\\\'sa\\\'
运行后sa的密码变为"ok"
sp_password存储过程的功能是更改SQLServer登录的密码;
语法格式:
sp_password[[@old=]support.microsoft/kb/256986/EN-US/)MicrosoftWindows注册表说明
警告:注册表编辑器使用不当可导致严重问题,可能需要重新安装操作系统。Microsoft不能保证您可以解决因注册表编辑器使用不当而导致的问题。使用注册表编辑器需要您自担风险。
如果不能确定如何验证MSDE安装的身份验证模式,可以查看相应的注册表项。默认情况下,对于Windows身份验证,WindowsLoginMode注册表子项的值设置为1。如果启用了混合模式身份验证,则此值为2。
?LoginMode子项的位置取决于您是将MSDE作为默认MSDE实例安装还是作为命名实例安装。如果MSDE是作为默认实例安装的,则LoginMode子项位于以下注册表子项中:
HKLM\Software\Microsoft\MSSqlserver\MSSqlServer\LoginMode
?如果MSDE是作为命名实例安装的,则LoginMode子项位于以下注册表子项中:
HKLM\Software\Microsoft\MicrosoftSQLServer\%InstanceName%\MSSQLServer\LoginMode
注意:切换身份验证模式之前,必须设置sa密码,以免暴露潜在的安全漏洞。
有关其他信息,请单击下面的文章编号,以查看Microsoft知识库中相应的文章:
274773(support.microsoft/kb/274773/EN-US/)FIX:IfYouChangeWindowsSecuritytoWindows/SQLSecuritytheSAPasswordisBlank
要从混合模式切换到集成(Windows)身份验证模式,请按以下步骤操作:1.要停止MSSQLSERVER以及所有其他相关服务(如SQLSERVERAgent),请在“控制面板”中打开服务程序。
2.打开注册表编辑器。要打开注册表编辑器,请依次单击开始和运行,然后键入:“regedt32”(不包括引号)
单击确定。
3.找到以下两个子项之一(取决于MSDE是作为默认MSDE实例安装的还是作为命名实例安装的):
HKEY_LOCAL_MACHINE\Software\Microsoft\MSSqlserver\MSSqlServer
-或者-
HKEY_LOCAL_MACHINE\Software\Microsoft\MicrosoftSQLServer\\MSSQLServer\
4.在右窗格中,双击LoginMode子项。
5.在DWORD编辑器对话框中,将此子项的值设置为1。确保选择了Hex选项,然后单击确定。
6.重新启动MSSQLSERVER和SQLSERVERAgent服务以使更改生效。
SQLServer安装的最佳安全方案
下面的每一项都会增强系统的安全性,并且它们都属于任何SQLServer安装的标准安全“最佳方案”。?使用非空密码保护sa登录帐户。有些蠕虫程序仅当您未对sa登录帐户采取安全措施时才会发作。有关其他信息,请单击下面的文章编号,以查看Microsoft知识库中相应的文章:
313418(support.microsoft/kb/313418/EN-US/)PRB:使用空(NULL)SA密码的非安全的SQLServer会给蠕虫程序以可乘之机
因此,要确保内置sa帐户具有强密码,必须按照SQLServer联机丛书的“系统管理员(SA)登录”主题中的建议进行操作(即使您从未直接使用sa帐户)。
?阻塞位于Internet网关的端口1433,然后分配SQLServer侦听备用端口。
?如果在Internet网关上必须使用端口1433,请启用进出过滤功能以防止误用端口。
?在MicrosoftWindowsNT帐户(而非本地系统帐户)下运行SQLServer服务和SQLServer代理。
?启用MicrosoftWindowsNT身份验证,然后启用对成功和失败登录的审核。然后,停止并重新启动MSSQLServer服务。配置您的客户端使用WindowsNT身份验证。
=============================
SQLServer2000的sa密码忘记之后的解决方法:
今天,发现我维护的服务器的SQL2000出错了。前一段时间把服务器的密码告诉了另一个同事,他在上面装了个他做的系统,也不知道被他怎么搞的一下。
现在竟然启动企业管理器也连接不上。原来的sa密码也不是我设置的。他说也没有动过SQL2000,真的是麻烦。
以下是我找到的解决方法,但是对于我的机器好象还不太行。
"无法连接到服务器,用户xxx登陆失败"
该错误产生的原因是由于SQLServer使用了"仅Windows"的身份验证方式,
因此用户无法使用SQLServer的登录帐户(如sa)进行连接.解决方法如下所示:
1.在服务器端使用企业管理器,并且选择"使用Windows身份验证"连接上SQLServer
2.展开"SQLServer组",鼠标右键点击SQLServer服务器的名称,选择"属性",再选择"安全性"选项卡
3.在"身份验证"下,选择"SQLServer和Windows".
4.重新启动SQLServer服务.
在以上解决方法中,如果在第1步中使用"使用Windows身份验证"连接SQLServer失败,
那就通过修改注册表来解决此问题:
1.点击"开始""运行",输入regedit,回车进入注册表编辑器
2.依次展开注册表项,浏览到以下注册表键:
[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/MSSQLServer/MSSQLServer]
3.在屏幕右方找到名称"LoginMode",双击编辑双字节值
4.将原值从1改为2,点击"确定"
5.关闭注册表编辑器
6.重新启动SQLServer服务.
此时,用户可以成功地使用sa在企业管理器中新建SQLServer注册,
但是仍然无法使用Windows身份验证模式来连接SQLServer.
这是因为在SQLServer中有两个缺省的登录帐户:
BUILTIN/Administrators
<机器名>/Administrator被删除.
要恢复这两个,可以使用以下的方法:
1.打开企业管理器,展开服务器组,然后展开服务器
2.展开"安全性",右击"登录",然后单击"新建登录"
3.在"名称"框中,输入BUILTIN/Administrators
4.在"服务器角色"选项卡中,选择"SystemAdministrators"
5.点击"确定"退出
6.使用同样方法添加<机器名>/Administrator登录.
说明:
以下注册表键:
HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/MSSQLServer/MSSQLServer/LoginMode的值决定了SQLServer将采取何种身份验证模式.
1.表示使用"Windows身份验证"模式
2.表示使用混合模式(Windows身份验证和SQLServer身份验证).
我在处理这个问题是这样做的:
1.重新注册SQL服务器,输入服务器名为:LOCALHOST,这个时候系统可以重新连接到SQL数据库
2.打开LOCALHOST下面的安全性->登录,修改sa的密码
3.编辑默认的Local服务连接的属性,修改为正确的sa的密码。
这样就可以正确的启动了LOCAL连接了。
最后当然可以删除LOCALHOST连接。