【发布时间】:2014-01-26 15:03:53
【问题描述】:
我是否可以在 SQL Server 2008 R2 中仅对特定用户启用 TCP 连接,或者在另一方面,我是否可以阻止某些用户使用 TCP 远程连接到 SQL Server?
【问题讨论】:
标签: sql sql-server database sql-server-2008 sql-server-2008-r2
我是否可以在 SQL Server 2008 R2 中仅对特定用户启用 TCP 连接,或者在另一方面,我是否可以阻止某些用户使用 TCP 远程连接到 SQL Server?
【问题讨论】:
标签: sql sql-server database sql-server-2008 sql-server-2008-r2
我会使用Logon Triggers 功能来完成此操作。
【讨论】:
spid值,然后查看sys.dm_exec_connections视图,查找net_transport列。
CREATE TRIGGER remote_connection_limit_trigger
ON ALL SERVER WITH EXECUTE AS 'sa'
FOR LOGON
AS
BEGIN
DECLARE @result XML
SET @result = EVENTDATA()
DECLARE @spid NVARCHAR(MAX)
SET @spid = @result.value('(/EVENT_INSTANCE/SPID)[1]', 'nvarchar(MAX)')
DECLARE @connectionType NVARCHAR(MAX)
SELECT @connectionType = net_transport FROM sys.dm_exec_connections WHERE session_id = @spid
IF @connectionType = 'TCP' AND ORIGINAL_LOGIN() <> 'temp_remote_user'
ROLLBACK;
END;
【讨论】: