SQL Server管理员帐号锁定后如何恢复访问

日期: 2012-09-25 作者:Ashish Kumar Mehta翻译:曾少宁 来源:TechTarget中国 英文

保证SQL Server安全是数据库管理的主要职责之一。然而,有许多时候,DBA必须管理一个没有系统管理员登录权限的SQL Server。例如,当前数据库管理员在离职时没有留下系统管理员帐号密码;或者系统管理员帐号被禁用,而且没有人知道sysadmin的密码;或者所有具有sysadmin权限的帐号都被意外删除。   在本文中,我们介绍的步骤将帮助数据库管理员添加一个具有系统管理员权限的新用户。

在这个演示中,我将使用SQL Server 2008免费版。本文介绍的步骤适用于SQL Server 2005及以上的所有版本。   如何以单用户模式启动SQL Server 单击Start→All Pr……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

保证SQL Server安全是数据库管理的主要职责之一。然而,有许多时候,DBA必须管理一个没有系统管理员登录权限的SQL Server。例如,当前数据库管理员在离职时没有留下系统管理员帐号密码;或者系统管理员帐号被禁用,而且没有人知道sysadmin的密码;或者所有具有sysadmin权限的帐号都被意外删除。

  在本文中,我们介绍的步骤将帮助数据库管理员添加一个具有系统管理员权限的新用户。在这个演示中,我将使用SQL Server 2008免费版。本文介绍的步骤适用于SQL Server 2005及以上的所有版本。

  如何以单用户模式启动SQL Server

  1. 单击Start→All Programs→Microsoft SQL Server 2008→Configuration Tools→SQL Server Configuration Manager
  2. 在SQL Server Configuration Manager中,右键单击SQL Server Service,然后在下拉菜单中选择Stop,停止SQL Server Service。
  3. 当SQL Server Service停止时,右键单击面板右边的SQL Server Service,然后在下拉菜单中选择Properties
  4. SQL Server Properties 界面上,单击Advanced 选项卡。单击展开Startup Parameters,然后输入“;-m”,如下图所示。单击OK,保存SQL Server Properties的修改。

SQL Server管理员帐号锁定后如何恢复访问

  1. 如果添加了启动参数“-m”,那么SQL Server Service就会重启。SQL Server Database Engine会以单用户模式启动。这里所说的SQL Server单用户模式在任何时候都是一样(单用户)。只要在启动参数中添加“-m”,SQL Server就只允许一个用户连接一个SQL Server实例。关于SQL Server启动参数的更多信息,请参考数据库引擎服务启动选项。
  2. 在修改启动参数设置之后,您会看到一条警告消息:“所有修改都将保存;但是它们在服务停止并重启之后才会生效。(Any changes made will be saved; however, they will not take effect until the service is stopped and restarted.)”。继续重启SQL Server Service(数据库引擎)。
  3. 当SQL Server Service成功重启之后,SQL Server就会以单用户模式运行。这时只允许一位用户连接数据库引擎。

  一定要记住:

  1. 当SQL Server配置为单用户模式时,不要启动SQL Server代理服务,因为SQL Server代理会占用唯一一个可用连接。
  2. 不要在SQL Server Management Studio (SSMS)中打开SQL Server Object Explorer,否则它会占用唯一一个可用连接。
  3. 停止Web服务器,否则第一个应用程序用户将会占用唯一一个可用连接。

  如果单用户模式下的SQL Server实例,而连接又已经被占用,那么您会得到下面的错误消息:

  Login failed for user ''. Reason: Server is in single user mode. Only one administrator can connect at this time. (Microsoft SQL Server, Error: 18461)

  连接SQL Server,使用SQLCMD创建一个新系统管理员帐号

  SQLCMD是SQL Server 2005引入的一个命令行工具,SQL Server 2005及以上版本都支持这个命令。使用SQLCMD,我们就可以为SQL Server实例添加一个带有系统管理权限的新登录帐号。按照以下步骤,可以创建一个带有sysadmin权限的登录帐号:

  1. 单击Start→Run→Type CMD,打开命令行提示符,然后输入SQLCMD –E –S SERVERNAME,连接SQL Server的默认实例。如果想要连接一个SQL Server命名实例(如本例所示),则要输入SQLCMD –E –S SERVERNAMEINSTANCENAME,如下图所示。默认情况下,安装SQL Server 时会同时安装SQLCMD,它位于以下位置:C:Program FilesMicrosoft SQL Server100ToolsBinn

  在SQLCMD中,输入以下命令,连接一个单用户模式下的SQL Server实例:

  /* 默认实例 */
  SQLCMD –E –S SERVERNAME
  /* 命名实例 */
  SQLCMD –E –S SERVERNAMEINSTANCENAME

  1. 在SQLCMD中,创建一个新的用户登录帐号,输入下面的TSQL代码,然后输入EXIT,最后得到如下图所示的SQLCMD窗口。

  CREATE LOGIN DBAdmin WITH PASSWORD ='T$chT@rget'
  GO
  EXEC sp_addsrvrolemember DBAdmin, sysadmin
  GO

  1. 当新用户成功添加时,要在SQL Server Configuration Manager的SQL Server Service的Advanced 选项卡中删除之前添加的“-m;”启动参数。在删除启动参数之后,不要忘记重启服务器,使修改生效。
  2. 使用SQL Server Management Stuido,以新创建的登录帐号连接SQL Server。然后,执行以下查询命令,验证SQL Server的登录权限:

  Use Master
  GO
  sp_helpsrvrolemember sysadmin
  GO

  在上面的截图中,您可以看到带系统管理员权限的新登录帐号。

作者

Ashish Kumar Mehta
Ashish Kumar Mehta

数据库管理器等相关领域资深作者。在数据库管理、性能调优、数据库开发和Microsoft SQL Server等技术培训方面有超过十年的丰富经验。

翻译

曾少宁
曾少宁

TechTarget中国特约技术编辑,某高校计算机科学专业教师和网络实验室负责人,曾任职某网络国际厂商,关注数据中心、开发运维、数据库及软件开发技术。有多本关于思科数据中心和虚拟化技术的译著,如《思科绿色数据中心建设与管理》和《基于IP的能源管理》等。

相关推荐

  • SQL Server审计最佳做法:DBA的3个关键问题

    合规性审计有时候像是数据库管理员最糟糕的噩梦,但并不一定是这样。SQL Server数据库审计的关键是做好准备 […]

  • DBA技能需紧跟大数据技术发展变化

    大数据工具正在改变许多公司的数据架构,因此它对于数据库管理员(DBA)所要求的技能将产生一定影响,DBA需要主动地去掌握一些新技术。

  • 大数据如何改变DBA工作模式

    起初可能只是少数专家拥有必要的知识和技能;但是随着企业实施更多的应用程序并加入更多的用户,那么整个团队就必然会参与到对大数据的支持中来。

  • DBA的特质第二部分:性格

    在本系列文章中,笔者将谈一谈数据库管理员(DBA)所应该具备的一些特质。在本文中,我会将介绍让一个人成为优秀DBA的宝贵性格特质。