Tul*_*ova 7 sql-server-2005 sql-server
我有这个问题。
我需要使用 SA 帐户在 MS SQL 数据库上执行一些管理任务。
如何激活操作系统身份验证以便我可以登录数据库并重置 SA 密码?
Aar*_*and 22
好吧,您可以从安装 Management Studio 开始。(一旦您有权访问实例,您还打算如何执行维护任务?)我推荐最新版本的 Management Studio,它功能齐全,可以很好地管理 2005 实例,并且完全没有任何许可要求。您可以从这里下载:
(如果您的操作系统是 32 位,您应该先修复它;如果不能,您可以在本页底部下载 SSMS 2014 SP1 的 32 位版本。)
安装 Management Studio 后,下一步将取决于您的 SQL Server 版本,以及您是否有能力关闭 SQL Server 服务以建立新凭据。这里的前两种方法不需要重启实例:
您可以使用该NT AUTHORITY\SYSTEM
帐户(或其他后门方法)进行连接。这里的一些答案中有一些细节:
我在MSSQLTips.com上也有解决这个问题的提示:
本质上,您从 Microsoft下载PSExec,然后在安装后使用它来启动 Management Studio:
PsExec -s -i "C:\...\Ssms.exe"
Run Code Online (Sandbox Code Playgroud)
这将连接为NT AUTHORITY\SYSTEM
并允许您在对象资源管理器中执行操作,例如:
将实例更改为 SQL Server 和 Windows 身份验证模式- 右键单击服务器名称,点击属性,如果当前仅设置为 Windows,则更改单选按钮:
设置sa
帐户的密码- 展开安全,展开登录,右键单击sa
并点击属性,在结果对话框中将有两个密码输入字段:
添加您自己的登录名sysadmin
- 右键单击登录名,新建登录名...输入您的登录名(在表单中DOMAIN\username
),然后移至服务器角色选项卡并选中该sysadmin
框并单击确定:
(或者,如果您的登录名已列出,请右键单击“属性”,并确保sysadmin
在“服务器角色”下选中)
从 SQL Server 2012 开始,NT Authority\SYSTEM
默认情况下不再授予 SQL Server 权限。因此,Argenis Fernandez 详细介绍了在这些较新版本中执行此操作的另一种方法:
如果 SQL VSS Writer 服务正在运行,请停止它,并暂停所有可能依赖它的维护计划或第 3 方备份软件。
打开regedit.exe
并更改HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SQLWriter\ImagePath
to的值指向SQLCMD.exe
,它将在C:\Program Files (x86)\Microsoft SQL Server\Client SDK\ODBC\**<...110|120|130|140...>**\Tools\Binn
. 编辑后,注册表值应如下所示(抱歉滚动):
"C:Program Files (x86)\Microsoft SQL Server\Client SDK\ODBC\130\Tools\Binn\SQLCMD.exe" -S .\instancename -E -Q "ALTER ROLE sysadmin ADD MEMBER [YourDomain\YourUserName];"
Run Code Online (Sandbox Code Playgroud)
尝试再次启动 SQL VSS Writer 服务(您将收到错误消息;没关系)。
您现在应该可以sysadmin
使用YourDomain\YourUserName
. 因此,停止 SQL VSS Writer 服务,修复注册表,然后重新启动该服务(如果您需要它运行,或者它在您启动之前正在运行)。
我在第二个技巧中更详细地介绍了这一点:
虽然当我写那个提示时,我使用了一种更麻烦的方法来制作副本SQLCMD.exe
和替换sqlwriter.exe
-SQLCMD.exe
直接指向服务要容易得多。
Microsoft 提供了一条官方支持的路径,需要在单用户模式下重新启动实例:
dbatools.io 中还有一个函数,用于管理 SQL Server 的 Powershell 解决方案,称为Reset-DbaAdmin
:
我看到很多人呼吁微软“修复”这些所谓的“漏洞”。这些是恢复对您合法拥有的 SQL Server 实例的访问权限的有效方法。它们都需要在 SQL Server 所在的物理主机上提升权限;正如我对几个人所说的那样,如果您不希望开发人员弄乱 SQL Server 安装,请不要让他们成为管理员。