添加Windows账户到sysadmin roles(丢失sysadmin的处理)
适用场景:
由于误操作或其他原因导致的没有sysadmin账户可用于登陆SQL Server,例如起初数据库设置为采用Windows认证登陆(UserA),随后更换了Windows账户(UserB),并删除了UserA,此时才发现自己采用Windows认证访问数据库的程序无法连接数据库,使用SSMS工具也无法访问。
处理步骤:
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来查看
指令运行效果如下图所示:
7.以上操作完成之后重新启动SQL SERVER服务登陆即可
net stop MSSQLServer
net start MSSQLServer