手机版

SQLSERVER误删SA密码Windows登录用户的解决方案

时间:2021-08-01 来源:互联网 编辑:宝哥软件园 浏览:

类型:数据库类大小:594KB语言:中文评分:7.7标签:立即下载。我急于在想起来之前问一个问题。一个DBA删除了Windows登录用户,SQLSERVER服务器的认证方式是Windows认证。

怎么办?

我当时给他的回答是:重装系统数据库主

今天看了这篇没有s a密码不能以Windows集成身份登录的文章。DBA应该怎么做?有了思路

假设我们处境不好

Sa已禁用,服务器身份验证处于Windows身份验证模式,Windows登录用户已删除,并且没有具有其他sysadmin角色的登录用户

第一步:

停止SQLSERVER:在命令行中,净停止mssqlserver

第二步:

转到SQLSERVER的安装目录

然后添加/m /f参数

步骤3:为单用户模式启动SQLSERVER

第四步:打开SSMS

此时,您不能立即连接。您需要单击“取消”,然后单击左上角的“新建查询”。此步骤与DAC(特殊管理员连接)相同

您会发现使用Windows登录的用户此时可以登录

步骤5:执行以下SQL脚本

1-打开xp_cmdshell function2exec [sys]。[sp _ config]@ config name=' XP _ cmdshell ',-varchar(35)3 @ config value=1-int4 reconfigures with override 567-修改注册表。身份验证被修改为混合身份验证模式8使用[master]9go 10 exec XP _ instance _ regwrite n ' HKEY _ local _ machine ',n ' software \ Microsoft \ MSSQL server \ MSSQL server ',n' login mode ',reg _ dword,211GO1213 -创建登录名14CREATELOGIN[计算机名\管理员]from windows;15GO1617 -给予登录名的权限是sys admin 18 usemaster 19go 20 exec[sys]。[sp _ addsrvrolemember]@ logname='计算机名\管理员'。-sysname 21 @ role name=sysadmin-sysname 2223-关闭xp_cmdshell函数24exec [sys]。[sp _ config]@ config name=' XP _ cmdshell ',-varchar(35)25 @ config value=0-int 26 recommendewithoverride

第六步:关闭SQLSERVER并重新启动

打开SQLSERVER配置管理器并启动SQLSERVER

步骤7:登录到SQLSERVER

回到SSMS,我们可以看到此时它已经恢复正常

摘要

感谢i6first大师,之前我以为不可能,没想到他想出了单用户模式启动进入SQLSERVER的方法。

没有服务协议密码,您无法以Windows集成身份登录。DBA应该怎么做?

有同事反映SQL无法正常登录,习惯通过windows集成身份验证登录(sa密码早就忘了)。今天换了服务器的机器名,现在无论如何都无法登录。

如果在SQL登录时使用windows集成身份验证,登录框会以“机器名\当前系统用户名”的格式显示登录名,登录名和密码为灰色,不允许用户输入。

知道同事刚修改了服务器的机器名,在SQL的登录框中显示“新机器名\当前系统用户名”。我们应该知道,windows集成身份验证之所以可以登录,是因为用户名已经包含在SQL的登录名中,并且在安装SQL时,原始用户名已经记录在SQL中。如果更改机器名称,“新机器名称\当前系统用户名”肯定无法正常登录。

网上有人说可以用osqls实例名e(在命令行窗口输入)登录,然后更改sa的密码。经过一番尝试,发现是无稽之谈,因为采用这种方法的前提是需要windows集成身份才能登录。

后来在微软官网看到一个文档。本来我只需要在SQL的启动参数上加一个“-m”的选项(记得在-m前加一个加号),然后我就需要重启SQL服务,用SQL Management Studio的windows集成身份验证重新登录。

-m表示单用户登录。细心的读者可能会质疑:-增加了m,但最终还是采用了windows集成身份验证。理论上,SQL操作系统的实例名和e有什么区别?

这是一个非常专业的问题。当时我也没看懂,觉得有点不可思议,但结果是这样的,肯定有道理。后来,我在微软官网上找到了这段话。

使用-mor-选项以单用户模式启动SQL Server实例。然后,计算机本地管理员组的任何成员都可以作为sysadmin固定服务器角色的成员连接到SQL Server实例。

大致意思是当-m或-f参数添加到SQL的启动参数中时,计算机本地管理员组中的任何用户都可以以sysadmin身份登录SQL。相信读者会了解这个地方。事实上,它不会检查登录用户是否存在于SQL中,而只会检查该用户是否是本地计算机管理组中的用户。

好的,相信以后不会有太大的负担,只是提醒读者:修改sa密码后,记得删除原来在SQL启动参数中添加的-m,然后重新启动SQL服务。

版权声明:SQLSERVER误删SA密码Windows登录用户的解决方案是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。