我有这个问题。
我需要使用SA帐户在MS数据库上执行一些管理任务。

如何激活OS身份验证,以便登录数据库,重置SA密码?
发布于 2013-09-11 17:06:32
您可以从安装Management开始。(在访问实例之后,您还计划如何执行维护任务?)我推荐最新版本的Management,它功能齐全,可以很好地管理2005年的实例,并且完全不需要任何许可要求。您可以从这里下载:
(如果您的操作系统是32位,您应该先修复它;如果不能,您可以下载32位版本的SSMS 2014 SP1到此页底部。)
一旦安装了Management,下一步所做的工作将取决于您的Server版本,以及您是否有能力使用Server服务来建立新的凭据。这里的前两个方法不需要重新启动实例:
您可以使用NT AUTHORITY\SYSTEM帐户(或其他后门方法)进行连接。在以下的一些答案中有一些细节:
我还有一个关于MSSQLTips.com的技巧,它解决了这个问题:
本质上,您从微软下载PSExec,然后在安装了Management之后使用它启动它:
PsExec -s -i "C:\...\Ssms.exe"这将以NT AUTHORITY\SYSTEM的形式连接,并允许您在对象资源管理器中执行以下操作:

sa帐户设置密码-展开安全性,展开登录,右键单击sa并点击属性,在结果对话框中将有两个密码输入字段:
sysadmin -右击登录,新登录.输入您的登录名(在表单DOMAIN\username中),然后移动到Server选项卡,并选中sysadmin框,然后单击OK:
sysadmin )用于Server 2012的
从Server 2012开始,默认情况下NT Authority\SYSTEM不再被授予Server权限。因此,在这些较新的版本中,另一种方法是阿吉尼斯·费尔南德斯( Argenis )详述:
regedit.exe并将HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SQLWriter\ImagePath的值更改为指向SQLCMD.exe,它将位于C:\Program Files (x86)\Microsoft SQL Server\Client SDK\ODBC\**<...110|120|130|140...>**\Tools\Binn中。编辑后,注册表值应该如下所示(对滚动表示遗憾):"C:Program (x86)\Microsoft \Client SDK\ODBC\130\Tools\Binn\SQLCMD.exe“-S .\instancename -E -Q "ALTER sysadmin ADD MEMBER YourDomain\YourUserName;”sysadmin使用YourDomain\YourUserName进行连接。因此,停止服务,修复注册表,重新启动服务(如果您需要它运行,或者它在启动之前正在运行)。我在第二篇小贴士中详细介绍了这一点:
虽然当我写这个技巧时,我使用了一种更麻烦的方法来复制SQLCMD.exe并替换sqlwriter.exe --直接将服务指向SQLCMD.exe要容易得多。
)
Microsoft提供了一个官方支持的路径,需要在单个用户模式下重新启动实例:
dbatools.io中还有一个函数,用于管理Server的Powershell解决方案,称为Reset-DbaAdmin:
我看到很多人呼吁微软“修复”这些所谓的“漏洞”。这些是恢复对您合法拥有的Server实例的访问的有效方法。它们都需要在SQL Server所在的物理主机上提升特权;正如我对几个人说过的那样,如果您不想让开发人员破坏Server安装,就不要让他们成为管理员。
https://dba.stackexchange.com/questions/49677
复制相似问题