• PPS I would also make NUM_ALLOWED an INT to match the data type that COUNT() returns.

    And one other perfromance bump might be to capture the ORIGINAL_LOGIN() in a variable, instead of calling it twice, like so:

    USE master

    GO

    CREATE TRIGGER connection_limit_trigger ON ALL SERVER

    WITH EXECUTE AS 'logon_trigger_login'

    FOR LOGON

    AS

    BEGIN

    DECLARE @original_login SYSNAME = ORIGINAL_LOGIN();

    -- the list of logins to restrict

    IF (

    SELECT NUM_ALLOWED

    FROM GK50LIVE.dbo.LimitedLogins

    WHERE LOGIN_ID = @original_login

    ) < (

    SELECT COUNT(*)

    FROM sys.dm_exec_sessions

    WHERE is_user_process = 1

    AND original_login_name = @original_login

    )

    BEGIN

    ROLLBACK

    END

    END;

    GO

    There are no special teachers of virtue, because virtue is taught by the whole community.
    --Plato