בפוסט זה אציג בתחילה בצורה כללית את Logon Triggers, את שימושיו וסוגיו השונים ולאחר מכן אציג מספר קטעי קוד קצרים המיישמים אותו בפועל. ולבסוף אציג את מגרעותיו ומספר טיפים קצרים לשימוש נבון בו. אז ככה, מגרסת 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 בצורה סינכרונית.
דוגמא מספר 1: Logon Trigger for all connections
עיינו בקוד הבא:
CREATE TRIGGER MonitoringAllConnections ON ALL SERVERAFTER LOGONASBEGIN+ 'PRINT SUSER_SNAME() + ' Just logged to+ 'UPPER(LTRIM(@@SERVERNAME))+ ' SQL Server at+ ':LTRIM(GETDATE()) + ' With ()APP_NAMEENDGO
Read more: Madeira
QR:
Read more: Madeira
QR: