SQL Server数据库sa密码相关问题的解决方法

1、如何查找sqlserver的sa密码?

 

查询分析器,连接时,身份验证使用"使用windows身份验证"

 

然后,执行:

 

EXEC sp_password NULL, 'NewPassword', 'Sa'

 

 

 

企业管理器-->实例名-->安全性-->登录-->双击右边的SA-->更改密码

 

 

 

问:丢失SA密码如何找回?

 

答:用户操作失误造成密码丢失。有两种方法:

如果数据不多,可重装TNSDB数据库。如果只想找回密码,可将安装盘中的tnsdb.txt文件中的“insert into

 

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、sql server2000忘记sa密码的解决方法

 

以“windows身份验证”方式登录SQL查询分析器,然后执行

 

EXEC sp_password NULL,'hello','sa'

 

就可以将sa的密码改为hello了。

 

 

3、SQL忘记sa密码修改方法

 

如果你在NT下(包括2000)装的SQL Server,则可以这样做:

 

直接打开"查询分析器"(注意不是从"企业管理器"中进入,可以从开始菜单的程序组进去,如果找不到的话,直接在"运行"中输入"isqlw.exe"也可);

 

选择"Windows身份验证"进入,不需要输入密码,只要你是本机的系统管理员或者域管理员,此时自动成为SQL Server的管理员;

 

在查询分析器窗口中输入下面的语句直接更改SA密码:

 

sp_password Null,///'ok///',///'sa///'

 

运行后sa的密码变为"ok"

 

sp_password存储过程的功能是更改SQL Server登录的密码;

 

语法格式:

 

sp_password [ [ @old = ] 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) 身份验证模式,请按以下步骤操作: 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 (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 身份验证。

 

=============================

 

SQL Server 2000 的sa密码忘记之后的解决方法:

 

今天,发现我维护的服务器的SQL2000 出错了。 前一段时间把服务器的密码告诉了另一个同事,他在上面装了个他做的系统,也不知道被他怎么搞的一下。

 

现在竟然启动企业管理器也连接不上。 原来的sa密码也不是我设置的。 他说也没有动过SQL2000,真的是麻烦。

 

以下是我找到的解决方法,但是对于我的机器好象还不太行。

 

"无法连接到服务器,用户xxx登陆失败"

 

该错误产生的原因是由于SQL Server使用了"仅 Windows"的身份验证方式,

 

因此用户无法使用SQL Server的登录帐户(如 sa )进行连接.解决方法如下所示:

 

1.在服务器端使用企业管理器,并且选择"使用 Windows 身份验证"连接上 SQL Server

 

2.展开"SQL Server组",鼠标右键点击SQL Server服务器的名称,选择"属性",再选择"安全性"选项卡

 

3.在"身份验证"下,选择"SQL Server和 Windows ".

 

4.重新启动SQL Server服务.

 

在以上解决方法中,如果在第 1 步中使用"使用 Windows 身份验证"连接 SQL Server 失败,

 

那就通过修改注册表来解决此问题:

 

1.点击"开始""运行",输入regedit,回车进入注册表编辑器

 

2.依次展开注册表项,浏览到以下注册表键:

 

[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/MSSQLServer/MSSQLServer]

 

3.在屏幕右方找到名称"LoginMode",双击编辑双字节值

 

4.将原值从1改为2,点击"确定"

 

5.关闭注册表编辑器

 

6.重新启动SQL Server服务.

 

此时,用户可以成功地使用sa在企业管理器中新建SQL Server注册,

 

但是仍然无法使用Windows身份验证模式来连接SQL Server.

 

这是因为在 SQL Server 中有两个缺省的登录帐户:

 

BUILTIN/Administrators

 

<机器名>/Administrator 被删除.

 

要恢复这两个帐户,可以使用以下的方法:

 

1.打开企业管理器,展开服务器组,然后展开服务器

 

2.展开"安全性",右击"登录",然后单击"新建登录"

 

3.在"名称"框中,输入 BUILTIN/Administrators

 

4.在"服务器角色"选项卡中,选择"System Administrators"

 

5.点击"确定"退出

 

6.使用同样方法添加 <机器名>/Administrator 登录.

 

说明:

 

以下注册表键:

 

HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/MSSQLServer/MSSQLServer/LoginMode 的值决定了SQL Server将采取何种身份验证模式.

 

1.表示使用"Windows 身份验证"模式

 

2.表示使用混合模式(Windows 身份验证和 SQL Server 身份验证).

 

我在处理这个问题是这样做的:

 

1. 重新注册SQL服务器,输入服务器名为: LOCALHOST ,这个时候系统可以重新连接到SQL数据库

 

2.打开LOCALHOST下面的安全性->登录 ,修改sa的密码

 

3. 编辑默认的Local服务连接的属性 ,修改为正确的sa的密码。

 

这样就可以正确的启动了LOCAL连接了。

 

最后当然可以删除LOCALHOST连接。

 

参考网址:http://tech.ccidnet.com/art/1105/20080728/1522837_1.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值