Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Czy można odmówić dostępu do SQL Server z określonych programów?

To NIE możliwe i wszystkie twierdzenia, że ​​są przeciwne, to olej węża.

Chociaż prawdą jest, że można sprawdzić nazwę aplikacji i utworzyć wyzwalacze logowania, które odmawiają logowania na podstawie tej właściwości, nazwa aplikacji nie jest bezpieczną właściwością i może być łatwo sfałszowana przez każdego. Polegaj na nim, jeśli chodzi o bezpieczeństwo (tj. odmowa logowania) to #fail.

Tak długo, jak obniżysz poprzeczkę i usuniesz terminy „odmowa dostępu” z twojego pytania, możliwe jest zapewnienie Wyzwalacz logowania który sprawdza nazwa_programu sesji w 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;

Nazwa_programu jest ustawiana przez niektóre aplikacje, nie wiem, czy pakiet Office ustawia tę właściwość na coś przydatnego lub pozostawia ją domyślną. Musisz zrozumieć, że może to obejść każdy po prostu zmieniając ApplicationName właściwość w ciągu połączenia.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Łączenie 4 tabel w SQL Server za pomocą Join

  2. Datetime T-SQL zaokrąglone do najbliższej minuty i najbliższych godzin przy użyciu funkcji

  3. Jak sprawdzić datę ostatniej zmiany w procedurze składowanej lub funkcji na serwerze SQL?

  4. Problem z wyodrębnianiem daty w SQL Server

  5. sql grupuj tylko według wierszy, które są w sekwencji