Sqlserver操作系统用户Administrator本地登陆SSMS报错18456的解决方法

官方文档 https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/connect-to-sql-server-when-system-administrators-are-locked-out?view=sql-server-ver15


结论:只要有操作系统的超级管理员账户,那么一定有方法可以登陆该服务器上的任何数据库,因为在任何数据库中,操作系统的administrator root 用户永远拥有高权限,可以进行配置项或数据库文件级别的修改

 

 

Sqlserver 操作系统用户administrator 本地登陆ssms 报错18456 的解决方法:使用-m 启动sqlserver 数据库,这样数据库允许本地管理员以single-user 登陆sqlserver 服务,就可以增加sqlserver 的登陆用户了,步骤如下

1、 停止所有sqlserver 服务包括SQL Server agent SQL Server Browse 等等

2、 修改sql server 的启动参数,增加-m

3、 启动sql server 这一个服务

4、 登陆ssms, 不要选择Connect ,选择New Query


5、 执行如下语句,以后就可以使用administrator 用户本地登陆数据库了

USE [master]

GO

CREATE LOGIN [BUILTIN\Administrators] FROM WINDOWS WITH DEFAULT_DATABASE = [master] , DEFAULT_LANGUAGE = [us_english]

GO

 

ALTER SERVER ROLE [sysadmin] ADD MEMBER [BUILTIN\Administrators]

GO

/* 以下为追加域用户组 DA\WDBA 并加入 sysadmin ,以后该用户组的成员就可以登陆数据库了

CREATE LOGIN [DA\WDBA] FROM WINDOWS WITH DEFAULT_DATABASE = [master] ,       DEFAULT_LANGUAGE = [us_english]

GO

 

ALTER SERVER ROLE [sysadmin] ADD MEMBER [DA\WDBA]

GO

*/

6、 关闭sqlserver 服务并移除-m 启动选项,再启动sqlserver 及相应的SQL Server agent SQL Server Browser ,后面用户就可以正常登陆sqlserver 数据库了

 

 


请使用浏览器的分享功能分享到微信等