添加Windows账户到sysadmin roles(丢失sysadmin的处理)

适用场景:

        由于误操作或其他原因导致的没有sysadmin账户可用于登陆SQL Server,例如起初数据库设置为采用Windows认证登陆(UserA),随后更换了Windows账户(UserB),并删除了UserA,此时才发现自己采用Windows认证访问数据库的程序无法连接数据库,使用SSMS工具也无法访问。
添加Windows账户到sysadmin roles(丢失sysadmin的处理)

处理步骤:

1.先看一下本机的帐户是否具有管理员的权限,如果没有添加上。
2.在开始菜单的搜索框中输入 cmd , 右键单击选择以管理员身份运行
3.在命令提示符输入 NET STOP MSSQLSERVRE 停止MSSQLSERVER运行(若已经停止则可以不用此方法)
4.启动SQL服务进入但用户模式:
  • net start MSSQLServer /m SQLCMD        [适用于默认实例名,例如MSSQLSERVER或SQLExpress]
  • net start MSSQL$<InstanceName> /m SQLCMD     [适用于指定实例名]
5.再以管理员帐户重新登陆开启一个窗口,连接SQL Server
  • sqlcmd –S. [适用于默认实例名,例如MSSQLSERVER或SQLExpress]
  • sqlcmd –S.\MyInstance [适用于指定实例名]
6.输入你要更改的操作命令即可,在此处我需要的是把本机帐户添加
  如: 
USE [master]
GO
CREATE LOGIN [需要添加的帐号,一般格式是 机器名\登录账号名FROM WINDOWS WITH DEFAULT_DATABASE=[master]
GO
EXEC master..sp_addsrvrolemember @loginame N’需要添加的帐号,一般格式是 机器名\登录账号名@rolename N’sysadmin’
GO
备注:上面代码中的’[‘’]‘符号也需要输入;需要添加的账号可以通过在命令行输入whoami来查看

指令运行效果如下图所示:
添加Windows账户到sysadmin roles(丢失sysadmin的处理)
7.以上操作完成之后重新启动SQL SERVER服务登陆即可
net stop MSSQLServer
net start MSSQLServer