对于众所周知账户,如Windows的administrator账户,SQL Server 的sa账户,我们都需要确认其是否安全。下面我们给出加强sa账户安全的四种方案:
-
给sa强密码
-
修改sa名称
-
禁用sa账户
-
只使用Windows登陆验证
如下给出前三种加强sa账户安全的脚本:
use master
go
--给sa强密码
alter login sa with password='4pvhXI7wd^e^XGJ&'
with chech_policy=on
,check_expiration=off
--修改sa名称为testsa
alter login sa with name=[testSa]
alter login testSa with name=sa
--sa账号信息,无论sa被改为什么名称,sa 的sid一直不变
select * from sys.syslogins
where sid=0x01
--停用sa账号,并给予一个随机密码
EXEC sp_SetAutoSAPasswordAndDisable
select * from sys.syslogins
where name='sa'
--禁用sa账户
alter login sa disable
第四种方案是对SQL Server登陆验证方式的设置,只使用Windows身份验证登陆,SQL Server账户不能登陆,那么sa也就无法使用了。
我本人比较喜欢第三种方式,禁用掉sa账户。下图显示sa账户为禁用状态:
当然有些SQL Server版本,安装好,已经禁用掉sa账户,如SQL Server 2016 所以是不需要另外去操作的。而对于没有禁用掉sa账户的SQL Server版本,禁用sa账户之前,需要保证至少有一个是sysadmin角色成员的可用账户,并且你清楚的记得其密码,切记,否则,当你禁用掉sa账户后,会发现你需要的管理权限都没有了,再需要重新启用sa账户,造成不必要的麻烦。