NON possibili e tutte le affermazioni contrarie sono olio di serpente.
Sebbene sia vero che puoi controllare il nome dell'applicazione e creare trigger di accesso che negano gli accessi in base a questa proprietà, il nome dell'applicazione non è una proprietà sicura e può essere facilmente falsificato da chiunque. Fai affidamento su di esso per la sicurezza (es. accesso negato) è #fallito.
Quindi, se abbassi la barra e rimuovi i termini come "negare l'accesso" dalla tua domanda, è possibile fornire un Trigger di accesso
che controlla il program_name
della sessione in 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;
Il nome_programma è impostato da alcune applicazioni, non so se la suite Office imposta questa proprietà su qualcosa di utile o la lascia predefinita. E devi capire che questo può essere aggirato da chiunque semplicemente modificando ApplicationName proprietà nella stringa di connessione.