首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >没有SA密码。没有。无OS认证

没有SA密码。没有。无OS认证
EN

Database Administration用户
提问于 2013-09-11 16:53:28
回答 1查看 22K关注 0票数 7

我有这个问题。

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

  • 未设置OS身份验证。
  • 未安装。
  • 我没有其他管理数据库帐户。
  • 我确实可以访问一个Windows管理帐户
  • 在数据库服务器上安装的唯一工具如下所示:

如何激活OS身份验证,以便登录数据库,重置SA密码?

EN

回答 1

Database Administration用户

回答已采纳

发布于 2013-09-11 17:06:32

您可以从安装Management开始。(在访问实例之后,您还计划如何执行维护任务?)我推荐最新版本的Management,它功能齐全,可以很好地管理2005年的实例,并且完全不需要任何许可要求。您可以从这里下载:

(如果您的操作系统是32位,您应该先修复它;如果不能,您可以下载32位版本的SSMS 2014 SP1到此页底部。)

一旦安装了Management,下一步所做的工作将取决于您的Server版本,以及您是否有能力使用Server服务来建立新的凭据。这里的前两个方法不需要重新启动实例:

用于Server 2005、2008和2008 R2实例

您可以使用NT AUTHORITY\SYSTEM帐户(或其他后门方法)进行连接。在以下的一些答案中有一些细节:

我还有一个关于MSSQLTips.com的技巧,它解决了这个问题:

  • 恢复对服务器实例的访问

本质上,您从微软下载PSExec,然后在安装了Management之后使用它启动它:

代码语言:javascript
复制
PsExec -s -i "C:\...\Ssms.exe"

这将以NT AUTHORITY\SYSTEM的形式连接,并允许您在对象资源管理器中执行以下操作:

  • 将实例更改为Server和Windows身份验证模式--右键单击服务器名称,点击属性,如果当前仅设置为Windows,则更改单选按钮:
  • sa帐户设置密码-展开安全性,展开登录,右键单击sa并点击属性,在结果对话框中将有两个密码输入字段:
  • 添加您自己的登录作为一个sysadmin -右击登录,新登录.输入您的登录名(在表单DOMAIN\username中),然后移动到Server选项卡,并选中sysadmin框,然后单击OK:
  • (或者,如果您的登录名已经列出,右键单击“属性”,并确保在“服务器角色”下选中了sysadmin )

用于Server 2012的

和更新的实例

从Server 2012开始,默认情况下NT Authority\SYSTEM不再被授予Server权限。因此,在这些较新的版本中,另一种方法是阿吉尼斯·费尔南德斯( Argenis )详述

  1. 如果service服务正在运行,请停止它,并挂起可能依赖它的所有维护计划或第三方备份软件。
  2. 打开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;”
  3. 尝试再次启动服务(您将得到一个错误;没关系)。
  4. 现在您应该能够使用sysadmin使用YourDomain\YourUserName进行连接。因此,停止服务,修复注册表,重新启动服务(如果您需要它运行,或者它在启动之前正在运行)。

我在第二篇小贴士中详细介绍了这一点:

虽然当我写这个技巧时,我使用了一种更麻烦的方法来复制SQLCMD.exe并替换sqlwriter.exe --直接将服务指向SQLCMD.exe要容易得多。

(如果您能够负担得起将Server服务降至

)

Microsoft提供了一个官方支持的路径,需要在单个用户模式下重新启动实例:

dbatools.io中还有一个函数,用于管理Server的Powershell解决方案,称为Reset-DbaAdmin

安全性不是这里的主要问题,

我看到很多人呼吁微软“修复”这些所谓的“漏洞”。这些是恢复对您合法拥有的Server实例的访问的有效方法。它们都需要在SQL Server所在的物理主机上提升特权;正如我对几个人说过的那样,如果您不想让开发人员破坏Server安装,就不要让他们成为管理员。

票数 22
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/49677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档