É NÃO possível e todas as alegações em contrário são óleo de cobra.
Embora seja verdade que você pode verificar o nome do aplicativo e criar acionadores de login que negam logins com base nessa propriedade, o nome do aplicativo não é uma propriedade segura e pode ser facilmente falsificado por qualquer pessoa. Confiança nele para segurança (ou seja, negação de login) é #fail.
Portanto, desde que você diminua sua barra e remova termos como 'negar acesso' de sua pergunta, é possível fornecer um Acionador de logon que inspeciona o
program_name
da sessão em 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;
O program_name é definido por alguns aplicativos, não sei se o pacote Office define essa propriedade para algo útil ou deixa o padrão. E você precisa entender que isso pode ser contornado por qualquer um simplesmente alterando o ApplicationName propriedade na cadeia de conexão.