sql >> Database >  >> RDS >> Sqlserver

Is het mogelijk om de toegang tot SQL Server van specifieke programma's te weigeren?

Het is NIET mogelijk en alle tegengestelde beweringen zijn slangenolie.

Hoewel het waar is dat u de naam van de toepassing kunt controleren en aanmeldingstriggers kunt maken die aanmeldingen op basis van deze eigenschap weigeren, is de toepassingsnaam geen veilige eigenschap en kan deze door iedereen gemakkelijk worden vervalst. Vertrouw erop voor beveiliging (d.w.z. inlogweigering) is #fail.

Dus zolang u uw lat lager legt en termen als 'toegang weigeren' uit uw vraag verwijdert, is het mogelijk om een ​​Aanmeldingstrigger die de program_name . van de sessie inspecteert 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;

De programmanaam wordt door sommige toepassingen ingesteld, ik weet niet of Office-suite deze eigenschap instelt op iets nuttigs of het standaard laat. En je moet begrijpen dat dit kan worden omzeild door iedereen door simpelweg de ApplicationName te wijzigen eigenschap in de verbindingsreeks.



  1. De schema's in een Oracle Data Pump Export-bestand bepalen

  2. Problemen met SQL Server MERGE-instructie

  3. Is er een manier om informatie te krijgen over de huidige sessie van gv$session in Oracle?

  4. Hoe SQL Server op Linux te installeren