• SQLRNNR (1/16/2012)


    Gianluca Sartori (1/16/2012)


    I did a similar thing some years ago.

    Here's the code:

    CREATE TRIGGER [TR_LOGON_APP]

    ON ALL SERVER

    FOR LOGON

    AS

    BEGIN

    DECLARE @program_name nvarchar(128)

    DECLARE @host_name nvarchar(128)

    SELECT @program_name = program_name,

    @host_name = host_name

    FROM sys.dm_exec_sessions AS c

    WHERE c.session_id = @@spid

    IF ORIGINAL_LOGIN() IN('YOUR_APP_LOGIN_NAME')

    AND @program_name LIKE '%Management%Studio%'

    BEGIN

    RAISERROR('This login is for application use only.',16,1)

    ROLLBACK;

    END

    END;

    Good stuff Gianluca.

    Just be careful because you can set the application name in the connection string and you can change it in Management Studio.

    Edit: oops, saw Lowell mentioned this later in the thread. I replied in the first page. I didn't show you how like Lowell did though.