Sql server 数据库安全配置

一、确保将“ sa”登录帐户设置为“已禁用”

描述

sa帐户是sysadmin中一个广为人知且经常使用的SQL Server特权帐户。 这是安装期间创建的原始登录,并且始终具 Principal_id = 1,sid = 0x01。实施此控制可降低攻击者对众所周知的主体执行暴力攻击的可能性。

加固建议

运行以下T-SQL命令:

USE [master]
GO
DECLARE @tsql nvarchar(max)
SET @tsql = 'ALTER LOGIN ' + SUSER_NAME(0x01) + ' DISABLE'
EXEC (@tsql)
GO

操作时建议做好记录或备份

二、确保“ sa”登录帐户已重命名 

sa帐户是具有sysadmin特权的众所周知且经常使用的SQL Server登录。 sa登录名是安装期间创建的原始登录名,并且始终具有principal_id = 1和sid = 0x01。 如果名称未知,则对sa登录名发起密码猜测和蛮力攻击更加困难。

加固建议 在以下语句中用自定义的名称替换<different_user>值,然后执行以重命名sa登录名。

ALTER LOGIN sa WITH NAME = <different_user>;

三、确保所有SQL身份验证登录名的“ CHECK_POLICY”选项都设置为“ ON” 

将Windows中使用的相同密码过期策略应用于SQL Server内部使用的密码。 确保SQL登录名符合Windows Server Benchmark所应用的安全密码策略,将确保频繁更改具有sysadmin特权的SQL登录名的密码,以帮助防止通过蛮力攻击造成的损害。 控制 SERVER是sysadmin的等效权限,并且还应该要求具有该权限的登录名具有到期的密码。

加固建议

四、使用以下代码段确定SQL登录名的状态以及是否强制执行其密码复杂性。

SELECT name, is_disabled
FROM sys.sql_logins
WHERE is_policy_checked = 0;

对于审核过程发现的每个<login_name>,执行以下T-SQL语句

ALTER LOGIN [login_name] WITH CHECK_POLICY= ON;

确保将“登录审核”设置为“失败”和“成功登录”

描述

设置日志记录成功和失败的登录SQL Server身份验证尝试。 记录成功和失败的登录信息可提供关键信息,这些信息可用于检测/确认密码猜测攻击。 此外,记录成功的登录尝试可用于在司法调查期间确认服务器访问。

加固建议

执行以下步骤来设置审核级别: 1.打开SQL Server Management Studio。 2.右键单击目标实例,然后选择“属性”并导航到“安全性” 标签。 3.在“登录审核”下选择选项“成功登录失败和成功登录” 部分,然后单击确定。 4.重新启动SQL Server实例。操作时建议做好记录或备份

五、确保Sysadmin角色中所有经过SQL身份验证的登录名的“ CHECK_EXPIRATION”选项都设置为“ ON” 

将Windows中使用的相同密码过期策略应用于SQL Server内部使用的密码。 确保SQL登录名符合Windows Server Benchmark所应用的安全密码策略,将确保频繁更改具有sysadmin特权的SQL登录名的密码,以帮助防止通过蛮力攻击造成的损害。 CONTROL SERVER是sysadmin的等效权限,并且还应该要求具有该权限的登录名具有到期的密码。

加固建议

运行以下T-SQL语句,以CHECK_EXPIRATION = OFF查找sysadmin或等效登录名。 不应返回任何行。

SELECT l.[name], 'sysadmin membership' AS 'Access_Method'
FROM sys.sql_logins AS l
WHERE IS_SRVROLEMEMBER('sysadmin',name) = 1
AND l.is_expiration_checked <> 1
UNION ALL
SELECT l.[name], 'CONTROL SERVER' AS 'Access_Method'
FROM sys.sql_logins AS l
JOIN sys.server_permissions AS p
ON l.principal_id = p.grantee_principal_id
WHERE p.type = 'CL' AND p.state IN ('G', 'W')
AND l.is_expiration_checked <> 1;

对于审核程序发现的每个<login_name>,执行以下T-SQL语句:

ALTER LOGIN [login_name] WITH CHECK_EXPIRATION = ON;

操作时建议做好记录或备份

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值