Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

SQL 2005 sql login ip restriction

Is there a way to restrict a specific SQL 2005 login on a Microsoft SQL Server 2005, standard version (sql is in mixed mode) to specific IP addresses, while other logins, Windows authenticated ones, are unaffected?

like image 898
gerleim Avatar asked Apr 09 '26 05:04

gerleim


1 Answers

I use the following trigger to restrict access to specific login - IPs combo.

CREATE TRIGGER [LOGIN_IP_RESTRICTION]
    ON ALL SERVER FOR LOGON
AS
BEGIN
    DECLARE @host NVARCHAR(255);

    SET @host = EVENTDATA().value('(/EVENT_INSTANCE/ClientHost)[1]', 'nvarchar(max)');

    IF(EXISTS(SELECT * FROM master.dbo.IP_RESTRICTION 
        WHERE UserName = SYSTEM_USER))
    BEGIN
        IF(NOT EXISTS(SELECT * FROM master.dbo.IP_RESTRICTION 
            WHERE UserName = SYSTEM_USER AND ValidIP = @host))
        BEGIN
            ROLLBACK;
        END
    END
END;

DDL for table IP_RESTRICTION:

CREATE TABLE [dbo].[IP_RESTRICTION](
    [UserName] [varchar](255) NOT NULL,
    [ValidIP] [varchar](15) NOT NULL,
    [Comment] [nvarchar](255) NULL,
 CONSTRAINT [PK_IP_RESTRICTION] PRIMARY KEY CLUSTERED 
([UserName] ASC, [ValidIP] ASC) ON [PRIMARY]
) ON [PRIMARY]
like image 83
Thuglife Avatar answered Apr 11 '26 03:04

Thuglife



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!