假如一个SQL Server实例只允许“SQL身份认证”模式登录数据库,而糟糕的是你忘记了sa的密码(sa出于安全考虑应该被禁用,这里仅仅为了描述问题)或其它具有sysadmin角色的登录名的密码?个人就遇到这样一个案例,HK一同事在一台测试服务器安装了一个测试用途的SQL Server数据库,然后这个同事离职前没有交接这个测试服务器任何信息。那现在就麻烦了。我没有任何权限,我如何获取sysadmin的权限呢?或者还有比较多的场景需要你获取数据库的sysadmin权限,例如你想干点坏事.... 其实这个问题也不难,只要你有这个SQL Server数据库的所在的服务器的操作系统管理员权限。

首先说明一下,下面脚本在SQL Server 2012、2014环境下都测试过,下面来一起看看如何在只有操作系统的管理员权限的情况下获取数据库的sysamdin权限。

其实在阐述这个问题前,可能要先说一下账号([builtin\administrators]),在SQL Server 2005的版本中,数据库中[builtin\administrators]登录名默认拥有sysadmin角色,所以,如果是SQL Server 2005数据库,只要你有操作系统的管理员权限,那么其实你就可以以Windows身份认证登录数据库(前提是服务器允许Windows身份认证登录),登录后修改sa账号密码即可,但是后续版本中都剔除了内置系统帐户([builtin\administrators])。那么通常的方法如何做呢?

其实只要你有操作系统的管理员权限,那么借助sqlcmd工具,很容易也很简单就能获取拥有sysadmin角色的账号。

1:首先必须单用户模式启动SQL Server实例(注意,要以管理员权限运行cmd窗口,否则可能遇到权限问题),否则sqlcmd就会遇到类似这样的问题

C:\Windows\system32>sqlcmd

Sqlcmd: Error: Microsoft ODBC Driver 11 for SQL Server : Login failed for user '

xxx\xxxx’..

C:\>net stop mssqlserver
The SQL Server (MSSQLSERVER) service is stopping.
The SQL Server (MSSQLSERVER) service was stopped successfully.
 
 
C:\>net start mssqlserver /m"SQLCMD"
The SQL Server (MSSQLSERVER) service is starting.
The SQL Server (MSSQLSERVER) service was started successfully.

2:然后在另外一个cmd窗口使用sqlcmd登录数据库

C:\>
 
C:\>
 
C:\>sqlcmd -E
 
1> ALTER LOGIN sa WITH PASSWORD='qWeR123456';
 
2> GO
 
1>

参数-E 表示 [-E trusted connection]  默认即是-E,如上所示,进去修改sa的密码,然后登录测试发现sa被禁用了,使用SQL语句允许sa登录即可。如下所示:

当然你也可以创建一个账号授予sysadmin角色。完全没有问题。

C:\>sqlcmd -E
1> CREATE LOGIN [xxx\xxx] FROM WINDOWS WITH DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english]
2> GO
1> ALTER SERVER ROLE [sysadmin] ADD MEMBER [xxx\xxx]
2> GO

或者SQL认证账号

C:\>sqlcmd -E
1> CREATE LOGIN [test1] WITH PASSWORD=N'Qw123456', DEFAULT_DATABASE=[master], DE
FAULT_LANGUAGE=[us_english], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
2> GO
1>
2>
3> ALTER SERVER ROLE [sysadmin] ADD MEMBER [test1]
4> GO
1>

是否感觉有点太简单了,太不安全了?  系统管理员轻松就获取了数据库的管理员权限。 这个功能怎么感觉都不太合理!试想,如果系统被入侵了,分分钟就能获取数据库的sysadmin权限。

转载于:https://www.cnblogs.com/kerrycode/p/8931386.html

SQL Server遗失管理权限账号密码怎么办?相关推荐

  1. 动态创建Sql Server用户及其权限

    一.如何动态创建用户 1.使用存储过程 sp_addlogin (Transact-SQL) 创建新的 SQL Server 登录,该登录允许用户使用 SQL Server 身份验证连接到 SQL S ...

  2. 理解SQL Server中的权限体系(下)----安全对象和权限

    在开始阅读本文之前,请确保你已经阅读过上一篇文章,文章地址: 理解SQL Server中的权限体系(上)----主体 简介 在上一篇文章中,我对主体的概念做了全面的阐述.本篇文章接着讲述主体所作用的安 ...

  3. 如何配置SQL Server 2008管理器_过路老熊_新浪博客

    SQl Server 配置管理器(简称为配置管理器)包含了SQL Server 2008服务.SQL Server 2008网络配置和SQL Native Client配置3个工具,供数据库管理人员做 ...

  4. 海康流媒体管理服务器账号密码泄露漏洞

    海康流媒体管理服务器账号密码泄露漏洞 1.海康流媒体管理服务器账号密码泄露漏洞 1.1.漏洞描述 1.2.漏洞影响 1.3.FOFA 2.漏洞复现 2.1.登录页面 2.2.POC 2.3.登录验证 ...

  5. SQL Server索引管理之六大铁律

    GPS平台.网站建设.软件开发.系统运维,找森大网络科技! https://cnsendnet.taobao.com 来自森大科技官方博客 http://www.cnsendblog.com/inde ...

  6. 怎么在服务器中修改sql权限设置密码,SQL server数据库的权限设置

    一.登录权限: SQL server的身份验证模式有以下两种: 1. Windows身份验证模式: 当使用Windows身份验证时,SQL server会使用操作系统中的Windows用户和密码.也就 ...

  7. Ms Sql Server 基本管理脚本(1)

    /* *登录帐户管理 */ --授予Windows账号test访问数据库的权限 exec sp_grantlogin 'teacher-jin\test' --拒绝Windows账号test访问数据库 ...

  8. SQL Server数据库超级管理员账号防护知识

    提到sa弱口令,我们首先就会想到,许多数据库都有1个类似的超级管理员账号,比如:Oracle是"system"和"sys",Sybase也是"sa&q ...

  9. SQL Server Alwayson 主从数据库账号同步

    我们建立了Alwayson后,辅助副本下的数据库是没有相应的账号的,怎么样进行账号的同步呢?怎么在不知道密码的情况下,进行账号的同步设置. 我们可以通过SP--sp_help_revlogin 来实现 ...

最新文章

  1. 最耗性能的SQL语句
  2. C4D插件:阿诺德Arnold渲染器 (R20-26版本合集)
  3. python 官方中文文档(在线)
  4. 随机梯度下降算法SGD
  5. css3多变形,CSS3 clip-path polygon图形构建与动画变换二三事
  6. 歪歪在去往宝石的路上,步履蹒跚中-1
  7. 如何为物联网解决方案选择合适的物联网模块
  8. c# mailgun 发送邮件测试
  9. 计算机显示无法打开打印机添加,windows无法打开添加打印机怎么办 无法打开添加打印机解决方法...
  10. VScode写Go代码引用的包报错飘红
  11. 《互联网程序设计》课程:第1讲 JAVA图形窗口程序设计 (完整代码实现)
  12. 读书笔记:《不抱怨的世界》
  13. 电子行业数字工厂管理系统有哪些优点和不足
  14. 今天接到东南融通的面试电话,请问下个人一些具体情况
  15. python跳舞的线_舞蹈链(Dance Link X)算法详解及python实现
  16. 聊一下和冠 Wacom数位板
  17. 单片机作业1_为OLED制作汉字字库_第4部分
  18. python爬虫代码房-python爬虫爬取链家二手房信息
  19. BZOJ2456 mode
  20. 考勤助手——学生查询出勤用例图

热门文章

  1. python的循环语句机制_Python-for循环的内部机制
  2. android json 斜杠,Android中Json数据去掉斜杠
  3. _用WSL,MobaXterm,Cmder配置linux开发环境
  4. C 与 C 的真正区别在哪里?
  5. linux uboot 源码分析,UBoot源码分析1.pdf
  6. yxcms安装环境php,Windows7下PHP开发环境安装配置图文方法
  7. 苹果更新未知错误17_iOS 13 新功能,静音未知来电
  8. c程序怎么改为java程序_如何将Java程序的入口点更改为C签名?
  9. 前端页面预览word_jquery.media.js实现前端页面预览
  10. java读取文件并显示_JAVA读取本地文件并显示到页面中