忘记SQL Server 管理员密码不可怕,学会这招就够了

作者 | 邹建,资深数据库专家,精通各项 SQL Server 技术,具有丰富的管理、维护、优化能力以及业务应用经验。他一直热心于技术知识的分享、传播,持续活跃在 CSDN 和 MSDN 社区,曾多年蝉联 CSDN 论坛积分榜首。

此外,邹建还是 2004~2010、2013年度 MVP(微软最有价值专家) 获得者。著有《深入浅出 SQL Server 2005开发、管理与应用实例》《SQL Server 2000开发与管理应用实例》等畅销书。

如果忘记 SQL Server 管理员密码,可以使用下面的方式处理

1. 使用 SQL Server 服务器计算机本地 Administrators 组的任何成员登录到 SQL Server 服务器 2. 确定忘记管理员密码的 SQL Server 服务 可以在服务(services.msc)里面查看,或者使用下面的 Powershell 命令 Get-Service | ? DisplayName -Like ‘SQL Server (*)’ 3. 停止 SQL Server 服务 4. 以单用户模式(/m参数)启动 SQL Server 服务 使用参数 /m 启动,在管理员命令提示符下执行 net start start mssqlserver /m 5. 使用 slqcmd 完成管理员解锁 在单用户模式下启动 SQL Server 可使计算机本地 Administrators 组的任何成员作为 sysadmin 固定服务器角色的成员连接到 SQL Server 实例 6. 完成后停止 SQL Server 服务,并以正常方式启动 SQL Servr 和相关服务即可


Powershell 通用脚本 – 将当前登录帐号加入 SQL Server 的 sysadmin 成员

# 脚本需要在管理员命令提示符下的 Powrshell 中执行 # 可以通过下面这个命令进入到管理员命令提示符下的 Powershell # Powershell Start-Process Powershell.exe -Verb runas ServiceName=′mssqlServiceName=′mssqlreportdb’ # 定义要操作的 SQL Server 服务 Service=Get−ServiceService=Get−ServiceServiceName # 停止 SQL Server 服务并以单用户模式启动 net.exe stop ((Service.Name) net.exe start ((Service.Name) /m # 当前用户加入 SQL Server 的 sysadmin 成员 Instance=′.\'+(Instance=′.\'+(Service.Name -Split ‘$’)[1] If( -Not Instance)$Instance=‘.′Instance)$Instance=‘.′user = [Environment]::UserDomainName + ‘\’ + [Environment]::UserName sql="CREATELOGIN[sql="CREATELOGIN[user] FROM WINDOWS; EXEC sp_addsrvrolemember [user],sysadmin”sqlcmd.exe−Suser],sysadmin”sqlcmd.exe−SInstance -Q $sql # 以正常方式启动 SQL Server 服务(依赖的服务需要手工检查启动) net.exe stop ((Service.Name) net.exe start ((Service.Name)


其他说明

可以让您重新获得访问权限的一种方法是重新安装 SQL Server 并将所有数据库附加到新实例。这种解决方案很耗时,并且若要恢复登录名,可能还需要从备份中还原 master 数据库。如果 master 数据库的备份较旧,则它可能未包含所有信息。如果 master 数据库的备份较新,则它可能与前一个实例具有同样的登录名;因此管理员仍将被锁定。

原创:邹建。

投稿:有投稿意向技术人请在公众号对话框留言。

转载:意向文章下方留言。

原文发布于微信公众号 - 数据和云(OraNews)

原文发表时间:2018-09-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据和云

细致入微:Oracle中执行计划在Shared Pool中的存储位置探秘

这两天我一直在想一个问题,那就是 Oracle 的执行计划到底存储在什么地儿?它会是一种什么样的格式? 这里我试图对这个问题做一点我自己认为的解释,这个解释可能...

31650
来自专栏杨建荣的学习笔记

记一次数据库的分析和优化建议(r6笔记第24天)

数据库的巡检是DBA工作中的一部分,有时候我们还是希望能够在巡检的基础上发现一些潜在的问题,把尽可能多的问题解决在初始阶段。 今天来给大家举一个数据库巡检和性能...

37480
来自专栏智能大石头

每天4亿行SQLite订单大数据测试(源码)

SQLite作为嵌入式数据库的翘楚,广受欢迎! 新生命团队自2010年以来,投入大量精力对SQLite进行学习研究,成功应用于各系统非致命数据场合。

24200
来自专栏MySQL实战分享

【MySQL经典案例分析】 Waiting for table metadata lock

2018年某个周末,接到连续数据库的告警,看到too many connection的报错信息,基本上可以把问题定位在...

1K60
来自专栏idba

死锁案例之十

死锁,其实是一个很有意思也很有挑战的技术问题,大概每个DBA和部分开发同学都会在工作过程中遇见 。关于死锁我会持续写一个系列的案例分析,希望能够对想了解死锁的朋...

11120
来自专栏智能大石头

每天4亿行SQLite订单大数据测试(源码)

SQLite单表4亿订单,大数据测试 SQLite作为嵌入式数据库的翘楚,广受欢迎! 新生命团队自2010年以来,投入大量精力对SQLite进行学习研究,成功应...

1K60

使用 Excel 分析 CloudStack 使用记录

注:本文最初由 David Nailey 在 Build a Cloud 博客上撰写。

22090
来自专栏沃趣科技

Oracle Real Time SQL Monitoring

术语说明 TableQueue,消息缓冲区,在并行操作中使用,用于PX进程之间的通信,或者PX进程与QC进程之间的通信,是内存中的一些page,每个消息缓冲区的...

46180
来自专栏Debian社区

Postgres 10 开发者新特性

目前非常流行的RDBMS PostgresSQL已经在几周前发布了它的第10个版本。由于Postgres的可靠性、节约成本、成熟,当然还有它的开源,已经21岁的...

13320
来自专栏PPV课数据科学社区

你用了吗?DBA必备的15款MySQL管理工具

如今,Web应用程序的响应速度是成功的关键法宝之一。它与用户互动,用户对网站的看法,甚至谷歌网站排名情况都有着密不可分的关系。数据库性能是响应速度最重要的因素之...

807110

扫码关注云+社区

领取腾讯云代金券