Det er IKKE muligt, og alle påstande om det modsatte er slangeolie.
Selvom det er rigtigt, at du kan kontrollere applikationsnavnet og oprette login-triggere, der nægter logins baseret på denne egenskab, er applikationsnavnet ikke en sikker ejendom og kan let forfalskes af enhver. Stol på det for sikkerhed (dvs. login-nægtelse) er #fail.
Så så længe du sænker baren og fjerner termer som 'nægt adgang' fra dit spørgsmål, er det muligt at give en Logonudløser
der inspicerer sessionens program_name
i sys.dm_exec_sessions
:
CREATE TRIGGER application_limit_trigger
ON ALL SERVER WITH EXECUTE AS '...'
FOR LOGON
AS
BEGIN
IF EXISTS (SELECT *
FROM sys.dm_exec_sessions
WHERE session_id = @@SPID
AND program_name IN (N'Bad Program', N'Worse Program', N'Unmentionable')
ROLLBACK;
END;
Programnavnet er indstillet af nogle programmer, jeg ved ikke, om Office-pakken sætter denne egenskab til noget nyttigt eller lader den være standard. Og du skal forstå, at dette kan omgås af alle ved blot at ændre ApplicationName egenskab i forbindelsesstrengen.