Wyzwalacze logowania
Wyzwalacze logowania ognia procedur przechowywanych w odpowiedzi na zdarzenie logowania.To zdarzenie jest wywoływane, gdy sesja użytkownika jest ustalana z wystąpienie z SQL Server.Wyzwalacze logowania ognia po rejestrowania zakończeniu fazy uwierzytelnianie, ale zanim użytkownik faktycznie jest ustanawiana sesja.Dlatego wszystkie komunikaty pochodzące z wewnątrz wyzwalacz, który zazwyczaj docierają użytkownika, takie jak komunikaty o błędach i komunikaty z instrukcja drukowania są kierowane do SQL Server dziennik błędów.Wyzwalacze logowania nie uruchamiaj Jeśli uwierzytelnianie nie powiedzie się.
Można użyć wyzwalaczy logowania do sesji serwera inspekcji i kontroli, takie jak śledzenie aktywności logowania ograniczanie uprawnień do logowania do SQL Server, lub ograniczenie liczby sesji dla określonego identyfikatora logowania.Na przykład, poniższy kod wyzwalacza logowania odmawia dziennika w próby SQL Server inicjowane przez logowania login_test istnieją już trzy sesje użytkownika utworzone przez tego logowania.
USE master;
GO
CREATE LOGIN login_test WITH PASSWORD = '3KHJ6dhx(0xVYsdf' MUST_CHANGE,
CHECK_EXPIRATION = ON;
GO
GRANT VIEW SERVER STATE TO login_test;
GO
CREATE TRIGGER connection_limit_trigger
ON ALL SERVER WITH EXECUTE AS 'login_test'
FOR LOGON
AS
BEGIN
IF ORIGINAL_LOGIN()= 'login_test' AND
(SELECT COUNT(*) FROM sys.dm_exec_sessions
WHERE is_user_process = 1 AND
original_login_name = 'login_test') > 3
ROLLBACK;
END;
Należy zauważyć, że zdarzenia logowania odpowiada zdarzenie śledzenia SQL AUDIT_LOGIN, które mogą być używane w powiadomienia o zdarzeniach.Podstawowa różnica między wyzwalaczami i zdarzenie powiadomienia jest, że wyzwalacze są wywoływane synchronicznie z zdarzenies, dlatego zdarzenie powiadomienia są asynchroniczne.Oznacza to, na przykład, jeśli chcesz zatrzymać sesja ustanowienie należy użyć wyzwalacza logowania.Powiadomienie o zdarzeniu na zdarzenie AUDIT_LOGIN nie można użyć do tego celu.
Dane zdarzenia logowania wyzwalacz przechwytywania
Służy do przechwytywania danych XML o zdarzenia logowania do użycia wewnątrz wyzwalaczy logowania, EVENTDATA funkcja.Aby uzyskać więcej informacji, zobacz Projektowanie i wdrażanie strukturalnego magazynu (aparat bazy danych).zdarzenie logowania zwraca schemat danych następujących zdarzeń:
<EVENT_INSTANCE>
<EventType>event_type</EventType>
<PostTime>post_time</PostTime>
<SPID>spid</SPID>
<ServerName>server_name</ServerName>
<LoginName>login_name</LoginName>
<LoginType>login_type</LoginType>
<SID>sid</SID>
<ClientHost>client_host</ClientHost>
<IsPooled>is_pooled</IsPooled>
</EVENT_INSTANCE>
<EventType>
Zawiera LOGON.<PostTime>
Zawiera czas podczas sesji wnosi się ustanowić.<SID>
Zawiera nazwę logowania określony podstawowy algorytmem 64 strumień binarny numer identyfikatora zabezpieczeń (SID).<ClientHost>
Zawiera nazwę hosta klient, z którym połączenie zostanie nawiązane.Wartość '<local_machine>' Jeśli klient i nazwa serwera są takie same.W przeciwnym razie wartość jest adres IP klient.<IsPooled>
Jest 1 , jeśli połączenie jest ponownie przez puli połączeń.W przeciwnym razie wartość jest 0.
Tworzenie, modyfikowanie i upuszczając wyzwalaczy logowania
Wyzwalacze logowania można utworzyć z dowolnej bazy danych, ale są zarejestrowane poziom serwera i znajdują się w wzorca bazy danych.
Aby utworzyć wyzwalacz logowania
Aby zmodyfikować wyzwalacza logowania
Aby usunąć wyzwalacz logowania
Uzyskiwanie informacji dotyczących logowania wyzwalaczy
Można przeglądać metadane dotyczące wyzwalaczy logowania przez badanie sys.server_triggers wykazu widoku.
Zobacz także