欢迎光临殡葬网
详情描述

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年有哪些潜在的“蓝海”方向?
在互联网时代,我们应如何平衡身份证使用的便利性与隐私保护?
在互联网时代,我们应如何平衡身份证使用的便利性与隐私保护?
如皋市商城网站建设公司-外贸网站建设,多年专业建站经验
如皋市商城网站建设公司-外贸网站建设,多年专业建站经验
使用医保电子凭证直接结算时,是否必须是在定点机构才可以?
使用医保电子凭证直接结算时,是否必须是在定点机构才可以?
杭州市一站式殡葬服务-殡葬灵堂策划,周到服务
杭州市一站式殡葬服务-殡葬灵堂策划,周到服务
珠海市小视频制作与剪辑@品牌网站开发建设,专业设计团队
珠海市小视频制作与剪辑@品牌网站开发建设,专业设计团队
房地产税一旦实施,会对大城市的房价和租房市场产生怎样的影响?
房地产税一旦实施,会对大城市的房价和租房市场产生怎样的影响?
社交平台晒生活时,如何避免无意中暴露家庭住址、行踪等敏感个人信息?
社交平台晒生活时,如何避免无意中暴露家庭住址、行踪等敏感个人信息?
信阳市小视频代运营@独立网站制作,专业设计团队
信阳市小视频代运营@独立网站制作,专业设计团队
西宁市丧葬一条龙服务办理-白事灵棚策划,一流的质量
西宁市丧葬一条龙服务办理-白事灵棚策划,一流的质量
四平市多语言网站开发设计-网站管理系统开发,网站制作
四平市多语言网站开发设计-网站管理系统开发,网站制作
食品包装上的“保质期”和“保存期”究竟有何不同,消费者该如何正确区分?
食品包装上的“保质期”和“保存期”究竟有何不同,消费者该如何正确区分?
企业除了追求经济效益,为何越来越重视自身的社会信用和品牌声誉建设?
企业除了追求经济效益,为何越来越重视自身的社会信用和品牌声誉建设?
佛山市殡葬服务-丧事悼念会布置,贴心服务
佛山市殡葬服务-丧事悼念会布置,贴心服务