MSSQL禁止远程连接:未解之谜(mssql不允许远程连接)

MSSQL禁止远程连接是解决数据库安全性问题的一种有效方法,在很多系统中都有应用。MSSQL禁止远程连接有很多种方法,但其实许多学习者仍然在犯解决MSSQL禁止远程连接的未解之谜这方面的困惑。

首先,要禁止MSSQL远程连接,我们需要确保MSSQL服务器端的防火墙设置正确,解决MSSQL禁止远程连接的未解之谜的一种有效方法是关闭服务器上的1433端口,阻止外部网络通过此端口访问MSSQL服务器。此外,可以在SQL Server 实例中将SQL Server 配置器中“远程连接”设置为“关闭”,这样就可以阻止其他客户端连接远程MSSQL服务器,解决MSSQL禁止远程连接的未解之谜。

然而,有时出于安全考虑,我们只想限制某些特定的IP段或主机禁止连接MSSQL服务器,而其他IP段或主机则可以正常登录。MSSQL服务端客户端连接的未解之谜也难应付这种情况,但可以通过一些安全策略来解决,例如在服务端安装T-SQL代码,以拦截来自指定网段或主机的连接请求。

以下是一些拦截特定IP或主机的T-SQL代码:

USE master
GO

DECLARE @IPsysname VARCHAR(50)
SET @IPsysname = '...xx'

declare @sql VARCHAR(800)
declare cur cursor for
select 'deny connect on tcp::' + rtrim(skinfo.protocol_ip_address)
from sys.dm_exec_connections ec
inner join sys.dm_exec_sessions skinfo
on ec.session_id = skinfo.session_id
where ec.net_address = @IPsysname

open cur
fetch next from cur
into @sql

while @@fetch_status=0
begin
exec (@sql)

fetch next from cur
into @sql
end

close cur
deallocate cur
GO


--恢复远程连接
USE master
GO
DECLARE @IPsysname VARCHAR(50)
SET @IPsysname = '...xx'

declare @sql VARCHAR(800)
declare cur cursor for
select 'grant connect on tcp::' + rtrim(skinfo.protocol_ip_address)
from sys.dm_exec_connections ec
inner join sys.dm_exec_sessions skinfo
on ec.session_id = skinfo.session_id
where ec.net_address = @IPsysname

open cur
fetch next from cur
into @sql

while @@fetch_status=0
begin
exec (@sql)

fetch next from cur
into @sql
end

close cur
deallocate cur
GO

通过以上简单的步骤,我们就可以禁止特定的IP或主机访问MSSQL服务器,而其他IP或主机则可以正常访问。

总之,解决MSSQL禁止远程登录的未解之谜可以通过以上两种方法来实现。第一种方法是通过关闭服务器端1433端口和将SQL Server的“远程连接”设置为“关闭”,阻止外部网络访问MSSQL服务器,从而解决MSSQL禁止远程连接的未解之谜。另一种方法是通过安装T-SQL代码来拦截特定IP主机的连接请求,从而达到禁止指定IP或主机访问MSSQL服务器的目的。


数据运维技术 » MSSQL禁止远程连接:未解之谜(mssql不允许远程连接)