sql >> Databáze >  >> RDS >> Sqlserver

Je možné odepřít přístup k serveru SQL z konkrétních programů?

NE možné a všechna tvrzení o opaku jsou hadím olejem.

I když je pravda, že můžete zkontrolovat název aplikace a vytvořit spouštěče přihlášení, které odmítnou přihlášení na základě této vlastnosti, název aplikace není zabezpečená vlastnost a může být kýmkoli snadno zfalšován. Spolehněte se na bezpečnost (tj. odmítnutí přihlášení) je #fail.

Pokud tedy snížíte laťku a ze své otázky odstraníte výrazy jako „zamítnout přístup“, je možné poskytnout Spouštěč přihlášení který kontroluje název_programu relace v 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;

Název_programu je nastaven některými aplikacemi, nevím, zda sada Office nastavuje tuto vlastnost na něco užitečného nebo ji ponechává výchozí. A musíte pochopit, že to může obejít kdokoli jednoduchou změnou ApplicationName vlastnost v připojovacím řetězci.



  1. Pokus o vytvoření seznamu hodnot včetně hodnoty tabulky a čísel pod ní

  2. Chyba intarray Postgresql:nedefinovaný symbol:pfree

  3. java Hibernujte zbytečné dotazy na oddělené objekty

  4. se nepodařilo otevřít soubor v databázi mysql