2014-01-25 143 views

回答

-1

很好用禁用的Windows身份验证重置SQL Server的sa密码
TNX,当SQL Server忘记SA密码和Windows身份验证模式也被禁止,可以使用小程序Asunsoft SQL密码Geeker重置SA密码并解锁您的SA帐户。在计算机上安装此程序。停止SQL Server服务,然后按照以下步骤操作:

步骤1:启动“Asunsoft SQL Password Geeker”。

第2步:点击“打开文件”按钮。浏览master.mdf文件并将其导入Asunsoft软件。

第3步:选择“sa”用户并单击“重置”按钮。

第4步:为您的SA帐户键入新密码。点击“确定”。

最后,关闭Asunsoft SQL密码Geeker。重新启动SQL Server服务。然后您可以使用新的SA密码登录到SQL Server。

Use Asunsoft SQL Password Geeker to reset SQL Server SA password

+0

-1用于廉价广告。这个程序和大多数其他人喜欢它可以让你“查看”你的密码,除非你付费,否则不会让你重置它。如果你诚实地提到这一点,我不会投下票。大多数这样的程序只是运行我在文章中描述的Power Shell脚本。 –

1

我有同样的问题。试图用Google搜索它,所有的标准解决方案都不起作用,所以我不得不创造性。基本上我的问题是SA帐户被禁用,系统也被设置为只允许通过Windows身份验证登录,最后Windows中的管理员帐户也不是sysadmin角色的成员。所以所有正常的建议不断给我的权限拒绝错误(因为我没有权限改变其他帖子告诉我,我应该改变)。

我的解决方案如下记载,仅适用于您需要的部分:

第1阶段: - 获取SSMS在单用户模式下工作

  1. 打开SQL Server配置管理器(SSCM)
  2. 点击SQL Server服务
  3. 右键单击SQL Server(MSSQLSERVER)并单击属性
  4. 单击高级选项卡
  5. 查找“启动参数”并添加以下内容
    • “-m;”在开始或“-m”末(注意分号,但不包括引号)
    • 小心添加任何空格的解析器是非常挑剔
  6. 按OK
  7. 再次右键单击,然后按下重启
    • 如果你的服务没有启动任何问题,请验证步​​骤5

第2阶段:第1部分: -

  1. 开始SSMS再次启用SQL Server和Windows身份验证模式。
    • 这次SSMS启动时,它将以单用户模式启动,这将为您提供完全访问权限。
  2. 像往常一样使用平常的Windows帐户登录。
  3. 右键单击服务器节点(第一个/最上面的节点)并选择属性。
  4. 点击安全
  5. 在“服务器认证”下点击“SQL Server和Windows认证模式”,如果它尚未被选中。
  6. 单击确定

第2阶段:第2部分: - 添加自己进入 “安全” sysadmin角色

  1. 点击,然后选择 “服务器角色”
  2. 右键单击“ sysadmin“角色
  3. 在弹出的窗口中,单击底部的添加。
  4. 在弹出的窗口中,单击浏览
  5. 找到您的用户并单击名称旁边的复选框。
  6. 单击确定 - 这将使您返回到步骤4中的窗口,该窗口现在将您的用户放在下面的框中。
  7. 单击确定 - 这会将您返回到步骤3中的窗口,该窗口将您的用户添加到角色成员列表。
  8. 点击确定。恭喜,您现在拥有SA用户的所有权利。

第2步:第3部分:更改SA密码和启用帐户

  1. 双击安全。
  2. 双击登录。
  3. 右键单击SA并选择属性。
  4. 更改并确认密码字段(但不要按确定)。
  5. 点击状态标签。
  6. 点击启用。
  7. 单击确定

这是任何重置用户密码(系统管理员)的过程。 在这个阶段你应该关闭SSMS。

阶段3:以多用户模式重新启动SSMS。

  1. 按照第1阶段所采取的步骤,只需将-m;

阶段4:试穿你的大鞋。

在这个阶段,您应该能够从您的登录启用或禁用SA帐户并更改其密码,同时您应该能够启用或禁用使用SQL Server身份验证登录的功能。测试这些以确保您拥有必要的权利。

备注:有些教导应该这样做。我觉得一旦你设置了一个新的SQL服务器实例,系统管理员账户应该是第一件事。

有人建议删除SA帐户(就我个人而言,我建议只需在其上输入一个非常强大的密码)。只要你有一个sysadmin账户,这没问题,但有人必须有一个sysadmin访问账户。这个帐户不应该被命名为管理员或其中一些像上帝的变种,原因很明显。也避免名称,如您的企业名称和任何组合等

至于启用或禁用sql server身份验证这是一个辩论,我会离开的数据库管理员。

希望你觉得这有帮助。

+1

这种方法是唯一为我工作的方法。从命令行运行SQL Server与添加服务启动的参数(对我来说)不一样 - 那就是诀窍。你救了我一些新的灰色头发。谢谢弗朗西斯。 – PRB

+0

@PRB - 很高兴能帮到你。我有一些灰头发自己搞清楚了。说删除SA帐户以防止黑客攻击的人有点极端。确实禁用它,但不要删除。原因就是这个。不容易知道其他帐户具有SA权限,并且如果其他具有SA权限的帐户在正常管理期间出于任何原因被删除,您将陷入麻烦世界。大多数情况下,如果发生这种情况,您可以重新启用SA帐户并设置一个新的SA帐户并再次禁用它(但只有在SA存在的情况下)。所以我从不建议删除它。 –

2

新的最佳方式:使用PowerShell。 Reset-SqlSaPassword允许管理员通过重置sa密码,将sysadmin角色添加到现有登录名,或添加新登录名(SQL或Windows)并授予登录系统管理员权限来重新获得对本地或远程SQL Server的访问权限。 Windows管理员权限是必需的。

enter image description here

这是通过停止SQL服务或SQL群集资源组来实现,然后使用/ MRESET-SqlSaPassword放慢参数,其开始在单用户模式服务器经由命令行重新启动SQL,只有允许Reset-SqlSaPassword连接。

一旦服务重新启动时,执行以下任务:如果它不存在

登录加入

  • 列表项
  • 登录启用
  • 登录加入到系统管理员角色
  • 登录解锁
  • 如果登录是Windows用户,则尝试保留E中的帐户存在
  • 如果登录一个SQL登录:
    • 一个安全的密码提示将会出现
    • 密码策略设置为关闭
    • SQL Server身份验证设置为混合模式

为了使该脚本尽可能便携,使用了System.Data.SqlClient和Get-WmiObject(与需要故障转移群集管理工具或SMO相反)。如果对远程SQL Server使用此功能,请确保WinRM已配置并可访问。如果这不可行,请在本地运行脚本。适用于x86和x64。

+0

OMG这是一个奇妙的脚本!我希望我能够再次超过100次 –