四、入侵防范(8.1.4.4)
4.1 配置安全与漏洞修复

-- 33. 查看SQL Server详细版本信息
SELECT
@@VERSIONAS[完整版本],
SERVERPROPERTY('ProductVersion')AS[产品版本],
SERVERPROPERTY('ProductLevel')AS[补丁级别],-- RTM/SP1/SP2/CUxx
SERVERPROPERTY('Edition')AS[版本类型],
SERVERPROPERTY('InstanceName')AS[实例名],
SERVERPROPERTY('MachineName')AS[计算机名],
SERVERPROPERTY('IsClustered')AS[是否集群],
SERVERPROPERTY('IsFullTextInstalled')AS[全文搜索],
SERVERPROPERTY('IsIntegratedSecurityOnly')AS[仅Windows认证];
-- 34. 查看所有SQL Server配置选项(高级选项)
EXEC sp_configure 'show advanced options',1;
RECONFIGURE;
EXEC sp_configure;
-- 35. 检查危险存储过程和扩展存储过程
-- xp_cmdshell(命令执行)
EXEC sp_configure 'xp_cmdshell';
-- 应返回:config_value=0, run_value=0
-- 36. 检查OLE自动化(调用COM对象)
EXEC sp_configure 'Ole Automation Procedures';
-- 37. 检查CLR集成(代码执行风险)
EXEC sp_configure 'clr enabled';
-- 38. 检查数据库邮件(数据外泄风险)
EXEC sp_configure 'Database Mail XPs';
-- 39. 检查SMO和DMO(管理对象)
EXEC sp_configure 'SMO and DMO XPs';
-- 40. 检查xp_regread等注册表访问
-- 这些没有显式配置,需检查是否存在
SELECT
name,
object_id,
type_desc
FROM sys.system_objects
WHERE name IN('xp_regread','xp_regwrite','xp_regdeletekey','xp_regdeletevalue')
ANDtype='X';-- X=扩展存储过程
-- 41. 检查链式配置(跨数据库所有权链)
EXEC sp_configure 'cross db ownership chaining';
-- 42. 检查代理账户(xp_cmdshell等使用)
EXEC sp_configure 'xp_cmdshell proxy account';
-- 43. 查看所有扩展存储过程(排查危险)
SELECT
name,
object_id,
type_desc,
create_date
FROM sys.system_objects
WHEREtype='X'-- 扩展存储过程
ORDERBY name;
4.2 网络安全配置
-- 44. 查看SQL Server网络配置(需查询注册表或使用动态管理视图)
-- 查看当前连接使用的协议
SELECT
net_transport,
auth_scheme,
client_net_address,
local_net_address,
local_tcp_port,
connection_id
FROM sys.dm_exec_connections
WHERE session_id = @@SPID;
-- 45. 查看所有连接的传输协议
SELECTDISTINCT
net_transport,
COUNT(*)AS[连接数]
FROM sys.dm_exec_connections
GROUPBY net_transport;
-- 46. 查看SQL Server端口配置(需结合配置管理器)
-- 查看动态端口使用
EXEC xp_readerrorlog 0,1, N'Server is listening on';
-- 47. 查看加密连接状态
SELECT
session_id,
net_transport,
auth_scheme,
encrypt_option AS[加密选项],
client_net_address
FROM sys.dm_exec_connections
WHERE encrypt_option ='FALSE'AND net_transport ='TCP';
-- 上述查询返回非加密TCP连接,生产环境应全部为TRUE
-- 48. 查看SQL Server强制加密配置
-- 需检查注册表或使用配置管理器,T-SQL无法直接查询
-- 但可以通过连接属性推断
SELECT
'检查SQL Server配置管理器中的Force Encryption设置'AS[检查项],
'应启用Force Encryption'AS[要求];