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