• [翻译]当SA帐号丢失时怎么办


    Q:我遇到了一个灾难:我丢失了SQL Server 2005的SA密码,有办法恢复么?我遵循了最佳安全实践,从sysadmin中删除了builtin\Administrators帐号,现在没其他人是sysadmin了。除了重新安装SQL Server并附加数据库外有什么其它方法么?因为这样可能会导致master数据库中的数据损坏。

    A:
    SQL Server 2005/2008提供了针对该情况的更好的灾难恢复方法,无需侵入master数据库,不会对master数据库中的对象和数据(例如登陆帐号,证书等)造成损坏。Windows管理员组的成员现在当SQL Server以单用户模式启动(另外一个名称为维护模式)的情况下对SQL Server有了访问权限。

    通过使用单用户模式,SQL Server 2005/2008避免了Windows管理员以sysadmin的身份在不被发现的情况下滥用权限。Windows管理员帐号能进行部分维护任务,例如安装补丁等。

    要将SQL Server以单用户模式启动,您可以在命令行模式下增加“-m”参数。您也可以使用SQL Server配置管理员工具。它提供了对文件访问和其他权限的合适控制。要是用配置管理工具来恢复您的系统,您可以根据如下步骤:

    1. 从菜单->SQL Server 2005->配置,打开配置管理工具
    2. 停止您想要恢复的SQL Server实例
    3. 找到“高级”tab,在属性文本框内的结尾,“启动参数”选项中增加“;–m”
    4. 点击“是”按钮,重新启动SQL Server实例
    请注意:请确保在“;”和“-m”之间没有空格。注册参数解析器对类似的输入错误非常敏感。您可以在SQL Server的ERRORLOG文件内看到显示“SQL Server started in single-user mode.”
    5. 在SQL Server实例以单用户模式启动后,Windows管理员帐号就能使用sqlcmd工具在Windows验证模式下连接SQL Server。您可以使用T-SQL命令诸如“sp_addsrvrolemember”来在sysadmin服务器角色中添加现有登录帐号或新创建一个登录帐号。范例语句如下:

    EXEC sp_addsrvrolemember 'CONTOSO\Buck''sysadmin';

    GO

    6. 只要sysadmin访问权限被恢复,在配置管理中从启动参数中移除“;-m”参数,重新启动SQL Server实例

    重要的安全提示:
    a. 该过程应该只能被用于当没有其他方法使用特权帐号(例如sysadmin或等同角色)来访问系统的灾难恢复。
    b. 该过程允许Windows管理员在SQL Server中有越权行为。它包含了可以被监测和检测出的明确的侵入行为,包含:
    1. 在单用户模式下停止SQL Server并重启
    2. 使用Windows帐号连接SQL Server

  • 相关阅读:
    H53D旋转-遁地龙卷风
    Linux(CentOS 7)+ Nginx(1.10.2)+ Mysql(5.7.16)+ PHP(7.0.12)完整环境搭建
    CentOS 普通用户设置sudo权限
    CentOS 7 终端设置屏幕分辨率
    JavaScript 数组详解
    javascript 创建对象及对象原型链属性介绍
    Mac OS + Nginx + Mysql + PHP 本地环境搭建
    CocoaPods安装和使用教程
    Linux 下常用的压缩,解压方法
    启动 mysql 失败 Warning:The /usr/local/mysql/data directory is not owned by the 'mysql' or '_mysql'
  • 原文地址:https://www.cnblogs.com/galaxyyao/p/1396697.html
Copyright © 2020-2023  润新知