结论:只要有操作系统的超级管理员账户,那么一定有方法可以登陆该服务器上的任何数据库,因为在任何数据库中,操作系统的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 数据库了