אז ככה, מגרסת 2005 ומעלה SQL Server הציגו לעולם את הפיצ'ר שנקרא Logon Triggers שנועד לעזור לנו לשלוט בצורה סינכרונית (הסבר מפורט בהמשך…) על מספר המשתמשים ברגע נתון ב- Instance מסוים או רק לדעת מי מחובר כרגע. וכמו כן,גם על מספר ה- Sessions שמריץ כל משתמש. חשוב לציין כי Logon Triggers השונים נכנסים לפעולה אך ורק לאחר השלמת תהליך ההתחברות ל-Instance, אך לפני שהמשתמש פתח Session חדש מול SQL Serve.
איך Logon Triggers פועלים?
השינוי המשמעותי ש- Logon Triggers מקנים לנו המשתמשים הוא בעצם ניטור ושליטה סינכרוניים על תהליך יצירת Sessions. אם תרצו, תוכלו לנטר יצירה של Sessions בעזרת Trace Event שנקרא: AUDIT_LOGIN. ממש כמו Logon Triggers, הוא מופעל בכל פעם שנוצר Session חדש במערכת אך לפני תחילתו בפועל(כמובן לאחר תהליך ה- Authentication). הבעיה היא, שלא ניתן לנקוט כל פעולה בעזרת ה- Trace Event בתגובה! ופה בעצם טמון היתרון הגדול של Logon Triggers, הם, בניגוד ל- Trace מאפשרים לנו לפעול בתגובה לאירוע של יצירת Session לפני תחילתו בפועל!! קרי, יכולת לשלוט על מספר המשתמשים וה- Sessions בצורה סינכרונית.
ON ALL SERVER
AFTER LOGON
AS
BEGIN
+ 'PRINT SUSER_SNAME() + ' Just logged to
+ 'UPPER(LTRIM(@@SERVERNAME))+ ' SQL Server at
+ ':LTRIM(GETDATE()) + ' With
()APP_NAME
END
GO
Read more: Madeira
QR: