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