SQL Server 2012:密码丢失的紧急状况下修改密码

SQL Server 2012:密码丢失的紧急状况mysql

若是发生意外状况,而您又忘记了 SQL Server 密码,能够经过一些方法返回系统。 sql

Saleem Hakani

你是一份自豪和受信任的 DBA 在您的组织。 您负责维护和更新您的生产环境中运行 SQL 服务器上的几个重要服务。 您已经决定将执行如下步骤 — — 这是一种任何固体的 DBA 将采起的最佳作法 — — 以确保您的公司从任何未经受权的访问的 SQL 服务器:数据库

  • 您已经从 SQL Server 登陆删除任何及全部的内置管理员账户。
  • 您已经删除 (除系统管理员或 SA) 是 SYSADMIN 服务器角色 (包括任何 Windows 账户和 SQL Server 登陆名) 的一部分的全部用户。
  • 您已将 SA 账户密码设置为极其复杂,这将是难以使人猜想或记住的东西。
  • 对于 SQL Server 上的平常操做,您可使用您的域用户账户,已对用户数据库的数据库全部者 (DBO) 权限,但不会在系统上具备系统管理员特权。
  • 没有记录任何地方的 SA 密码防止其余人知道它。 毕竟它不是一个好的作法,以记录密码。

由于您已经设置的 SA 密码如此复杂 — — 与您一直使用您的域账户而不是 SA 账户为全部您平常与数据库相关的 SQL 服务器的活动 — — 意想不到的事发生了。 您忘记了您的 SQL 服务器的 SA 密码。服务器

你是惟一的人知道您的团队中的 SA 密码。 如今您不记得它是什么,您须要对您生产 SQL Server 框进行一些服务器级别的配置更改。 你打算如今作什么? 如下是一些选项:ide

  • 请尝试以 SA 登陆与全部可能的密码,你有你的头脑中。
  • 查找您的计算机硬盘上或电子邮件 (您可能保存了它在一些文件中,这是很差的作法,但能够帮助) 中的 SA 密码。
  • 尝试还原 Master 数据库从数据库备份。 这不会在长期帮助,由于你仍会遇到一样的问题,若是您不记得的 SA 密码。
  • 从新生成主数据库。 这是只稍有帮助的由于您将丢失全部系统级和服务器级配置和设置包括登陆、 权限和服务器级别的任何对象。
  • 从新安装 SQL 服务器 2012年和附加全部用户数据库。 这可能不工做,由于您可能会遇到一样的问题,你会经历与重建主数据库。

假定全部您尝试登陆到使用 SA 密码的系统都已失败。 如今是时候为你呼吁增援部队:Microsoft 产品支持服务团队。 这里是他们可能会告诉你要作什么:spa

这是后门向 SQL 服务器 2012 将帮助您得到您的 SQL 服务器生产 SYSADMIN 进入。 然而,这意味着您的 Windows 账户必须是在 SQL 服务器 2012年服务正在运行的 Windows 服务器上的本地管理员组的成员。命令行

SQL Server 容许链接到 SQL Server 具备系统管理员权限的本地管理员组的任何成员。3d

在这里是要采起控制您 SQL 服务器 2012 年做为一个 SA 的步骤:code

1. 启动 SQL 服务器 2012年实例使用单用户模式下从命令提示符启动命令提示符以管理员的身份。 您还能够启动 SQL 服务器 2012 使用最少的配置,还将 SQL Server 在单用户模式下。
2. 从命令提示符 (以管理员身份运行),请键入:SQLServr.Exe –m (或 SQLServr.exe –f) 和启动 SQL 服务器 2012年数据库引擎。 请确保您没有关闭此命令提示符窗口。 您能够在您的环境路径的 Binn 文件夹中查找 SQLServr.exe。 若是你没有一个 SQL 服务器 2012 Binn 文件夹在您环境的路径中,老是能够导航到您的 SQL 服务器 2012年机器的 Binn 文件夹。 一般的 Binn 文件夹位于 C:\Program Files\Microsoft SQL Server\MSSQL11。MSSQLSERVER\MSSQL\Binn >。
3. 一次 SQL 服务器 2012 服务已开始在单用户模式下或最小配置,您如今能够打开另外一个命令行窗口以管理员的身份和使用的 SQLCMD 命令,从命令提示符来链接到 SQL 服务器 2012年实例:

   
  1.           SQLCMD –S <Server_Name\Instance_Name>
  2. ExampleSQLCMD –S "SALEEMHAKANI"
  3.         

  你将如今登陆到 SQL Server。 请记住,您在 SALEEMHAKANI SQL 服务器 2012年实例上的管理员身份登陆的。
4. 一旦您正在登陆到 SQL 服务器 2012 从命令提示符处使用 SQLCMD,您能够建立一个新的账户和任何服务器级别权限授予它的选择。 在 SQL 服务器 2012 称为"Saleem_SQL"中建立新的登陆名,而后将此账户添加到 SA 服务器角色。 若要建立从命令提示符执行步骤 3 以后的新的登陆名,使用如下方法:

   
  1.           1CREATE LOGIN '<Login_Name>' with PASSWORD='<Password>'
  2. 2GO
  3.         

  下面是一个示例:

   
  1.           1>     CREATE LOGIN SQL_SALEEM WITH PASSWORD='$@L649$@m'
  2. 2>     GO
  3.         

  一旦您已经建立了新的登陆"SQL_SALEEM",添加此登陆到 SQL 服务器 2012年实例上的 SA 服务器角色。 从相同的命令提示符窗口中,执行如下语句:

   
  1.           1SP_ADDSRVROLEMEMBER '<Login_Name>','SYSADMIN'
  2. 2>go
  3.         

  要向 SYSADMIN 服务器角色添加现有的登陆,请执行如下语句:

   
  1.           1>     SP_ADDSRVROLEMEMBER '<LOGIN_NAME>','SYSADMIN'
  2. 2>     GO
  3.         

  下面是一个示例:

   
  1.           1>     SP_ADDSRVROLEMEMBER SQL_SALEEM,'SYSADMIN'
  2. 2>     GO
  3.         
  之前的操做会照顾授予的"SQL_SALEEM"登陆系统管理员权限。
5. 一旦你成功地执行了这些步骤下, 一步是中止和启动 SQL Server 服务使用按期启动选项。 这一次您不须要 –f 或 –m。
6. 登陆到 SQL 服务器 2012年管理工做室。 您还能够从命令提示符下使用的"SQL_SALEEM"账户和其各自的密码登陆。 您如今能够 SA 访问您的 SQL 服务器 2012年实例。 你如今可能重置的 SA 密码,并采起你生产的控制 SQL Server 框。

这是很正常的事,不时忘记了密码,但这并不意味着它是较少的麻烦。 这些紧急措施应获得您启动和运行无太多置乱或停机时间。
相关文章
相关标签/搜索