SQLSERVER sa被禁用 可通过SQLSERVER单用户模式来解决

(1) :SQLSERVER的sa被禁用或sa密码忘记

前提条件:存在其他的SQLSERVER管理账户。比如administrator账户存在于SQLSERVER的登录名中。

有时候,我们在安装SQLSERVER 2005或2005以上版本数据库的时候,在安装的时候没有勾选“SQLSERVER 和WINDOWS混合身份验证” ,这样一来,安装好的SQLSERVER 数据库在登录的时候,只能用WINDOWS身份验证来登录,sa是禁用状态 。那我们怎么处理这个问题呢?  解决办法:就是用WINDOWS 的administrator方式登录进去 ,进行如下操作:

1:安全性——登录名——sa登录属性——状态——登录——启用(同时设置下sa的密码) 。

2:最顶部的SQLSERVER服务器属性——安全性——勾选“SQLSERVER和WINDOWS身份验证模式”

3:重新启动下SQLSERVER服务

就可以解决问题。

若你此时还存在其他的SQLSERVER 的 sysadmin权限的账号,你也可以用此账号登录SQLSERVER,然后通过上面的方法来启用SA和重置sa密码。

但是在以下情况下,怎么办呢?
1. SA密码丢失或者SA账号被禁用。
2. 你进行了一些安全操作,把Administrator账号从SQL Server中删除了。
3.不存在其他的sysadmin权限的账号。

对于此情况,如何是好? 是不是只能重新安装SQLSERVER 了呢?

其实是不用的,  对于此问题,微软给出了解决办法, 也就是SQLSERVER数据库的单用户模式 。下面我已SQLSERVER 2008 数据库为例说明下此方法:

1:登录操作系统的账户必须是administrators组的账户, 比如我系统目前的登录账户是administrator ,默认就是这个。用这个账户登录系统后,打开命令提示符,输入输入NET STOP MSSQLSERVER, 即停止MSSQLSERVER运行。在命令提示符里输入 NET START MSSQLSERVER /m, 将SQL Server 2008 启动为单用户模式。

此外当用户模式还可以通过以下方式实现:

开始——程序——打开SQLSERVER 配置管理器——SQLSERVER服务——MSSQLSERVER属性——高级——启动参数 后面加一个;-m 保存设置后重启下SQLSERVER主服务即可。

danuser

2 :在SQLSERVER单用户名模式下,就可以用administrator账户登录到SQLSERVER去了,进去找到sa用户名然后启用或重置sa密码。

此时需要注意的地方:

a : 单用户模式下 ,SQLSERVER的查询分析器不能用

nochaxun

但是左侧视图下的其他功能都可以使用,可以手动创建其他SQL管理登录账户。

b : 单用户名模式下 ,SQLserver验证方式的账户是不能登录的,比如用sa登录SQLSERVER的时候,提示:

nosa

SQLSERVER的单用户名模式下,只有当前WINDOWS系统的管理员账户可以登录到SQLSEVER,不用考虑此WINDOWS管理员账户是否存在于SQLSERVER的登录名列表中。

那SQL查询分析器真的不能用了吗? 其实是可以用的。怎么用 ?

SQL Server已经是单用户模式启动即只允许一个用户连接,这时单击“New Query”会报错“Login failed for user. Reason: Server is in single user mode. Only one administrator can connect at this time”。 这时右击实例名,单击“断开连接”,关闭“对象资源管理器”,然后再点击“New Query”就可以连接了,你可以使用命令 ALTER Login SA enable 重新开启SA 账户 ,你可以使用   EXEC   sp_password   null,   ’复杂的密码',   'sa'   来重新设置sa密码 。一般做法是启用了就行了,设置密码可以不通过SQL方式实现。

此外我们还可以通过SQLSERVER 的分析查询器创建出一个具有管理权限的sysadmin账户,比如:在查询分析器里面输入如下SQL语句:

create login dbadmin with password='htidc3.0'
exec sp_addsrvrolemember dbadmin,sysadmin

执行之后就可以创建一个登录名字为dbadmin密码为htidc3.0的SQLSERVER验证模式的SQL管理账户。

3 :为了让新创建的SQLSERVER验证模式的账户或sa 账户能登录到SQLSERER ,我们需要把SQLSERVER的单用户模式关闭掉。 这个关闭,只有通过命令行操作才能生效。 进入命令行执行:
net stop mssqlserver 和 net start msssqlserver 即可关闭掉SQLSERVER的单用户名模式了。

 

 

相关新闻

联系我们

全国服务热线

400-033-9553

电子邮件:admin@example.com
工作时间:09:00-17:00 周一至周五

在线客服
关注微信
关注微信
分享本页
返回顶部