欢迎光临殡葬网
详情描述

1. Windows 防火墙设置(最简单有效)

入站规则设置

# 允许特定 IP 访问 1433 端口
New-NetFirewallRule -DisplayName "SQL Server Allow IP" -Direction Inbound `
  -LocalPort 1433 -Protocol TCP -Action Allow -RemoteAddress 192.168.1.100

# 拒绝其他 IP 访问
New-NetFirewallRule -DisplayName "SQL Server Block All" -Direction Inbound `
  -LocalPort 1433 -Protocol TCP -Action Block

2. SQL Server 配置管理器

修改 TCP/IP 属性

打开 SQL Server 配置管理器 展开 SQL Server 网络配置协议 右键 TCP/IP → 属性 在 IP 地址 选项卡中:
  • 设置特定 IP 的 TCP 端口 为 1433
  • 将不需要的 IP 的 活动 改为
  • IPAll 中的 TCP 动态端口 清空

3. 数据库引擎的登录限制

使用登录名的 CONNECT 权限

-- 创建登录名时限制访问
CREATE LOGIN [YourLogin] WITH PASSWORD = 'StrongPassword!'
GO

-- 为登录名授予连接权限(默认就有)
-- 如果要限制,可以通过拒绝 CONNECT SQL 权限

4. 使用数据库触发器(应用层限制)

创建登录触发器

CREATE TRIGGER [connection_limit_trigger]
ON ALL SERVER WITH EXECUTE AS 'sa'
FOR LOGON
AS
BEGIN
    DECLARE @ClientIP VARCHAR(50)
    SET @ClientIP = EVENTDATA().value('(/EVENT_INSTANCE/ClientHost)[1]', 'VARCHAR(50)')

    -- 允许的 IP 列表
    IF @ClientIP NOT IN ('192.168.1.100', '192.168.1.101')
    BEGIN
        ROLLBACK
        RAISERROR('IP %s 不允许访问数据库服务器', 16, 1, @ClientIP)
    END
END
GO

5. 使用 SQL Server Audit(监控和审计)

-- 创建服务器审计
CREATE SERVER AUDIT IP_Audit
TO FILE (FILEPATH = 'C:\Audits\')
WITH (ON_FAILURE = CONTINUE)
GO

-- 启用审计
ALTER SERVER AUDIT IP_Audit WITH (STATE = ON)
GO

-- 创建服务器审计规范
CREATE SERVER AUDIT SPECIFICATION IP_Audit_Spec
FOR SERVER AUDIT IP_Audit
ADD (FAILED_LOGIN_GROUP),
ADD (SUCCESSFUL_LOGIN_GROUP)
WITH (STATE = ON)
GO

6. 通过应用程序网关/防火墙

使用 Azure SQL Database

-- Azure SQL 有内置的防火墙功能
-- 在 Azure Portal 中设置防火墙规则:
-- 1. 服务器防火墙 → 添加客户端 IP
-- 2. 配置虚拟网络规则

-- 使用存储过程管理防火墙规则
EXEC sp_set_firewall_rule @name = N'AllowOffice', 
    @start_ip_address = '192.168.1.1', 
    @end_ip_address = '192.168.1.254'

最佳实践建议:

多层防护策略:

第一层:操作系统防火墙 第二层:SQL Server TCP/IP 配置 第三层:SQL Server 登录限制 第四层:应用程序权限控制

具体操作步骤:

-- 1. 查看当前连接信息
SELECT 
    session_id,
    connect_time,
    client_net_address,
    auth_scheme,
    host_name
FROM sys.dm_exec_connections
WHERE session_id = @@SPID

-- 2. 查看所有连接
EXEC sp_who2

-- 3. 查看登录信息
SELECT name, type_desc, is_disabled
FROM sys.server_principals
WHERE type IN ('S', 'U', 'G')

推荐的组合方案:

生产环境:使用 Windows 防火墙 + SQL Server 配置 高安全环境:增加登录触发器 + SQL Server Audit 云环境:使用云服务商提供的网络安全组和防火墙

注意事项:

  • 修改配置前务必备份现有设置
  • 测试时保留一个管理员 IP 的访问权限
  • 确保应用程序连接池配置正确
  • 定期审查和更新 IP 白名单
  • 使用 VPN 或专用连接进行远程访问更安全

选择哪种方法取决于你的具体需求:

  • 简单控制:使用 Windows 防火墙
  • 精细控制:结合多种方法
  • 云环境:使用云平台的安全组功能
相关帖子
因合同到期公司不再续签而失业,是否符合领取失业金的条件?
因合同到期公司不再续签而失业,是否符合领取失业金的条件?
遇到快递被擅自投入快递箱,消费者在2026年可以通过哪些途径有效维权?
遇到快递被擅自投入快递箱,消费者在2026年可以通过哪些途径有效维权?
乡村振兴背景下,农村养老服务设施建设有哪些新进展?
乡村振兴背景下,农村养老服务设施建设有哪些新进展?
周一晨会集体摸鱼:《周一的救星》员工用“假装网络卡顿”躲过老板唠叨,打工人暗号笑喷
周一晨会集体摸鱼:《周一的救星》员工用“假装网络卡顿”躲过老板唠叨,打工人暗号笑喷
陵水殡葬殡仪服务一条龙|丧事白事一条龙,收费合理,快速上门
陵水殡葬殡仪服务一条龙|丧事白事一条龙,收费合理,快速上门
家长在2026年可以通过哪些方式有效了解并参与孩子课后服务的过程与评价?
家长在2026年可以通过哪些方式有效了解并参与孩子课后服务的过程与评价?
株洲市AI数字人制作小视频@模版网站制作,专业团队
株洲市AI数字人制作小视频@模版网站制作,专业团队
2026年针对网络购物中默认勾选捆绑销售的行为,消费者可以依据哪些规定维权?
2026年针对网络购物中默认勾选捆绑销售的行为,消费者可以依据哪些规定维权?
小区内商业住户与普通住宅住户的物业管理费,其收费依据和标准为何不同?
小区内商业住户与普通住宅住户的物业管理费,其收费依据和标准为何不同?
2026年农村快递网点在偏远乡镇是如何实现稳定覆盖与日常运营的?
2026年农村快递网点在偏远乡镇是如何实现稳定覆盖与日常运营的?
2026年租房支出申报个税专项附加扣除,具体的操作步骤和材料是什么?
2026年租房支出申报个税专项附加扣除,具体的操作步骤和材料是什么?
Windows Server2012只显示DOS命令的解决方案
Windows Server2012只显示DOS命令的解决方案
荆门市殡葬服务一条龙办理|丧事白事一条龙服务,殡葬大殓服务
荆门市殡葬服务一条龙办理|丧事白事一条龙服务,殡葬大殓服务
九江市多语言网站制作-android软件开发,多年建站经验
九江市多语言网站制作-android软件开发,多年建站经验
榆林市企业商城建设@开源网站建设定制,专业建站
榆林市企业商城建设@开源网站建设定制,专业建站
甘油涂口腔溃疡有用吗
甘油涂口腔溃疡有用吗
Python办公自动化之openpyxl使用与避坑全面指南
Python办公自动化之openpyxl使用与避坑全面指南
商品房楼书中常见的“示意图”和“效果图”是否具有法律约束力?
商品房楼书中常见的“示意图”和“效果图”是否具有法律约束力?
使用家庭共济功能时发生支付失败或异常情况应如何联系处理?
使用家庭共济功能时发生支付失败或异常情况应如何联系处理?