ביקורת במסד נתונים של SQL Server

בדף הזה מוסבר על ביקורת מסדי נתונים ב-Cloud SQL באמצעות הפונקציונליות של SQL Server Audit.

סקירה כללית

ב-Cloud SQL, היכולות של SQL Server Audit כוללות את האפשרויות הבאות:

  • יצירת מפרטים לביקורת שרת
  • מעקב אחר אירועים ברמת השרת וברמת מסד הנתונים ורישום שלהם ביומן

מידע נוסף על היכולות של SQL Server Audit זמין במאמר SQL Server Audit (Database Engine).

לפני שמתחילים

לפני שמפעילים את האפשרות 'ביקורת מסד נתונים', חשוב לעיין בדרישות המוקדמות שמפורטות בקטע הזה.

קטגוריה של Cloud Storage לקובצי ביקורת

קבצי ביקורת (יומני ביקורת) מועלים למיקום של קטגוריה של Cloud Storage. לכן, יכול להיות שתצטרכו ליצור מאגר בבעלות חשבון Google Cloud .

אפשר גם להשתמש במיקום של מאגר שנמצא בבעלות של חשבון אחר. כשמפעילים את הביקורת, אם יש לכם את ההרשאות הנדרשות, roles/storage.objectAdmin התפקיד מוענק באופן אוטומטי להעלאת קובצי ביקורת למיקום של דלי האחסון של חשבון השירות שצוין. אם אין לכם את ההרשאות הדרושות, תצטרכו להעניק אותן לחשבון השירות בהמשך.

משתמש תקף להפעלת ביקורת

כדי להפעיל את הביקורת וליצור מפרטי ביקורת, צריך שהמשתמש שמוגדר כברירת מחדל sqlserverיהיה זמין. כשיוצרים מכונה של Cloud SQL ל-SQL Server, נוצר בשבילכם משתמש ברירת המחדל sqlserver.

הפעלת ביקורת

כשמפעילים את הביקורת, צריך לציין מיקום ב-Cloud Storage. הפרמטרים הבאים הם אופציונליים:

  • תקופת השמירה של היומן במופע
  • מרווח ההעלאה (תדירות ההעלאה)

המסוף

  1. נכנסים לדף Cloud SQL Instances במסוף Google Cloud .

    כניסה לדף Cloud SQL Instances

  2. כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה.
  3. לוחצים על Edit.
  4. בקטע התאמה אישית של המופע, לוחצים על דגלים ופרמטרים.
  5. מסמנים את תיבת הסימון לצד הפעלת ביקורת ב-SQL Server.
  6. מציינים קטגוריה של Cloud Storage כמיקום שאליו יועלו קובצי הביקורת.
  7. לוחצים על אפשרויות מתקדמות.
  8. אפשר גם לציין את מספר הימים שבהם היומנים יישמרו בדיסק (1 עד 7 ימים; 7 ימים היא ברירת המחדל).
  9. אופציונלי: מציינים את תדירות העלאת היומנים (קבצי הביקורת) בדקות (1-720 דקות; ברירת המחדל היא 10 דקות).
  10. לוחצים על Save כדי לעדכן את השינויים.

gcloud

הפקודה הבאה מפעילה את האפשרות לביקורת:

gcloud sql instances patch INSTANCE_NAME --audit-bucket-path=gs://my-bucket --audit-retention-interval=24h --audit-upload-interval=10m

בטבלה הבאה מפורטים הפרמטרים של הפעולה הזו: gcloud

פרמטר תיאור ערכים מותרים ערך ברירת מחדל
--audit-bucket-path חובה. המיקום, כקטגוריה של Cloud Storage, שאליו מועלים קובצי הביקורת. השדה ריק אם הביקורת מושבתת. אחרת, נתיב של מאגר שמתחיל ב: gs:// ריק, כי כברירת מחדל, הביקורת מושבתת.
--audit-retention-interval זה שינוי אופציונלי. מספר הימים לשמירת יומן הביקורת בדיסק. יום אחד עד 7 ימים. מותר להשתמש רק בימים. 7 ימים.
--audit-upload-interval זה שינוי אופציונלי. באיזו תדירות להעלות יומני ביקורת (קבצים של ביקורת). ‫1 עד 720 דקות. 10 דקות.

REST v1

באמצעות ה-API בארכיטקטורת REST, אתם יכולים להפעיל ביקורת עבור מופע. כפי שמוצג באב-טיפוס הבא של הבקשה, אפשר לציין קטגוריה של Cloud Storage, מספר ימים לשמירת קובץ הביקורת ותדירות להעלאת קובצי הביקורת. חובה לציין רק את מיקום הדלי. מידע נוסף זמין במאמר SqlServerAuditConfig:

{
   "databaseVersion":"database-version",
   "name":"instance-id",
   "region":"region",
   "rootPassword":"password",
   "settings":{
      "tier":"machine-type",
      "sqlServerAuditConfig":{
         "bucket":"gs://mybucket",
         "retentionInterval":"24h",
         "uploadInterval":"10m"
      }
   }
}

REST v1beta4

באמצעות ה-API בארכיטקטורת REST, אתם יכולים להפעיל ביקורת עבור מופע. כפי שמוצג באב-טיפוס הבא של הבקשה, אפשר לציין קטגוריה של Cloud Storage, מספר ימים לשמירת קובץ הביקורת ותדירות להעלאת קובצי הביקורת. חובה לציין רק את מיקום הדלי. מידע נוסף זמין במאמר SqlServerAuditConfig:

{
   "databaseVersion":"database-version",
   "name":"instance-id",
   "region":"region",
   "rootPassword":"password",
   "settings":{
      "tier":"machine-type",
      "sqlServerAuditConfig":{
         "bucket":"gs://mybucket",
         "retentionInterval":"24h",
         "uploadInterval":"10m"
      }
   }
}

השבתת הביקורת

בקטע הזה מפורטות האפשרויות להשבתת הביקורת. כשמשביתים את הביקורת, כל קובצי הביקורת, כולל אלה שעדיין לא הועלו, נמחקים מהמופע. בנוסף, כל הביקורות בשרת מושבתות וצריך להפעיל אותן מחדש כדי שהביקורת תתחדש. יכול להיות שיומני ביקורת שהועלו לקטגוריה של Cloud Storage יישארו שם, בהתאם להגדרות השמירה של הקטגוריה.

אלה האפשרויות להשבתת הביקורת.

המסוף

  1. נכנסים לדף Cloud SQL Instances במסוף Google Cloud .

    כניסה לדף Cloud SQL Instances

  2. כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה.
  3. לוחצים על Edit.
  4. בקטע התאמה אישית של המופע, לוחצים על דגלים ופרמטרים.
  5. מבטלים את הסימון בתיבת הסימון שליד הפעלת ביקורת של SQL Server.
  6. לוחצים על Save כדי לעדכן את השינויים.

gcloud

הפקודה הבאה, שבה לא מצוין ערך לפרמטר --audit-bucket-path, משביתה את הביקורת:

gcloud sql instances patch INSTANCE_NAME --audit-bucket-path=

REST v1

הדוגמה הבאה היא אב-טיפוס של בקשה להשבתת הביקורת, שבה לא מופיעים השדות של אובייקט sqlServerAuditConfig:

{
   "databaseVersion":"database-version",
   "name":"instance-id",
   "region":"region",
   "rootPassword":"password",
   "settings":{
      "tier":"machine-type",
      "sqlServerAuditConfig":{
      }
   }
}

REST v1beta4

הדוגמה הבאה היא אב-טיפוס של בקשה להשבתת הביקורת, שבה לא מופיעים השדות של אובייקט sqlServerAuditConfig:

{
   "databaseVersion":"database-version",
   "name":"instance-id",
   "region":"region",
   "rootPassword":"password",
   "settings":{
      "tier":"machine-type",
      "sqlServerAuditConfig":{
      }
   }
}

העלאה אוטומטית של קובצי ביקורת

אחרי שמפעילים את הביקורת, קובצי הביקורת שנוצרים מועלים באופן אוטומטי לקטגוריה של Cloud Storage שצוינה.

גם קובצי הביקורת שנוצרו מאוחסנים עם המופע עד שתקופת השמירה (המרווח) שהוגדרה מסתיימת. אחרי התקופה הזו, קובצי הביקורת נמחקים באופן סופי, כולל קבצים שלא ניתן היה להעלות.

יצירת ביקורות שרת

אחרי שמפעילים את האפשרות 'ביקורת', למשתמש sqlserver שמוגדר כברירת מחדל יש הרשאות ליצור, לשנות ולהסיר ביקורות של השרת.

משתמשים בפקודה CREATE SERVER AUDIT כדי להגדיר ביקורות חדשות בשרת. אפשר גם להשתמש בממשק המשתמש של SQL Server Management Studio (SSMS) כדי ליצור ביקורות שרת.

הקטגוריות הבאות של פרמטרים נאכפות בכל הביקורות של השרתים:

קטגוריית פרמטר ערכים מותרים
במקרה של כשל ביומן הביקורת המשך או כשל
יעד הביקורת קובץ
נתיב /var/opt/mssql/audit
גודל קובץ מקסימלי ‫2MB עד 50MB
מספר מקסימלי של קבצים להחלפה הערך חייב להיות: לא מוגדר
מספר הקבצים המקסימלי הערך חייב להיות: לא מוגדר
הקצאת שטח קבוע מושבת

קריאת בדיקות

בקטעים הבאים מוסבר על דרכים שונות לקרוא את הביקורות.

קריאת ביקורות ממכונה

כדי לאחזר את הנתונים מקובץ ביקורת שנוצר על ידי ביקורת שרת, אפשר להשתמש בהליך המאוחסן הבא: msdb.dbo.gcloudsql_fn_get_audit_file. הפרוצדורה msdb.dbo.gcloudsql_fn_get_audit_file מקבלת את אותם פרמטרים כמו הפונקציה sys.fn_get_audit_file.

לכן, מידע על השימוש בפרוצדורה המאוחסנת הזו מופיע במאמר sys.fn_get_audit_file.

דוגמה לשימוש בהליך msdb.dbo.gcloudsql_fn_get_audit_file כדי לאחזר נתוני ביקורת:

SELECT event_time, statement FROM msdb.dbo.gcloudsql_fn_get_audit_file('/var/opt/mssql/audit/*', NULL, NULL) WHERE statement LIKE '%INSERT%'

הפרוצדורה המאוחסנת הזו מתאימה יותר לנפחי נתונים קטנים עד בינוניים. אם אתם רוצים לקרוא יומני ביקורת של כמויות גדולות מאוד של נתונים, מומלץ לקרוא יומני ביקורת מ-Cloud Storage באמצעות מופע של Compute Engine.

קריאת ביקורות מקטגוריה

כדי לקרוא נתוני ביקורת מקטגוריה של Cloud Storage, אפשר להוריד את הקבצים מהקטגוריה למכונת SQL Server. המופע של SQL Server יכול להיות:

  • מכונת Windows ב-Compute Engine
  • מכונת Linux ב-Compute Engine
  • סוג נוסף של מופע שבו פועל SQL Server

צריך להעביר את קובצי הביקורת מהקטגוריה למיקום שנגיש לאותו מופע, כמו הדיסק המקומי שלו. לאחר מכן, כדי להחזיר מידע מקובצי הביקורת, מריצים את הפונקציה sys.fn_get_audit_file באמצעות חבר בתפקיד השרת הקבוע serveradmin. לדוגמה, ממכונת Windows, אם העברתם קובצי ביקורת אל D:\Audit, תוכלו להשתמש בפקודה שדומה לפקודה הבאה:

SELECT event_time, statement FROM sys.fn_get_audit_file('D:\Audit\*.*', NULL, NULL) WHERE statement LIKE '%INSERT%'

מעקב אחרי מדדים

אפשר לעקוב אחרי פעולות שקשורות לביקורת כחלק ממדדי Cloud SQL, שזמינים דרך Metrics Explorer:

  • database/sqlserver/audits_upload_count. המדד הזה מציין את המספר הכולל של ניסיונות ההעלאה של קובץ הביקורת, כולל ניסיונות מוצלחים וניסיונות שנכשלו. כדאי לבדוק את המדד הזה כדי לעקוב אחרי העלאות מוצלחות.
  • database/sqlserver/audits_size. המדד הזה מציין כמה נפח אחסון בדיסק מנוצל על ידי קובצי ביקורת שמאוחסנים במופע, בזמן המדידה. המדד הזה מספק את הגודל הכולל של קובצי הביקורת במופע, בבייטים.

שיטות מומלצות

  • כדי להימנע מהעברת קבצים גדולים בין אזורים, כדאי לשקול את האפשרויות הבאות:
    • יצירת קטגוריות של Cloud Storage שפועלות במספר אזורים
    • הגדרה של קטגוריית היעד של Cloud Storage באותו אזור כמו המופע
  • לפני שמשתמשים בפונקציונליות של SQL Server Audit, כדאי להפעיל הגדלות אוטומטיות של נפח האחסון. יכול להיות שקובצי ביקורת ידרשו נפח אחסון משמעותי בדיסק, בהתאם לגודל הכולל שלהם ולמרווחי השמירה.
  • אחרי שמפעילים את הביקורת, צריך לוודא שהמכונה יכולה להעלות קובצי ביקורת לקטגוריה של Cloud Storage. אם מגיש הבקשה שהגדיר את הביקורת לא היו לו ההרשאות הנדרשות להעלאת קבצים לקטגוריה של Cloud Storage, ההרשאות לא יוענקו באופן אוטומטי. למידע נוסף על הרשאות, אפשר לעיין במקורות המידע הבאים:
  • כדאי להגדיר מדיניות התראות שמבוססת על מדדים כדי לקבל התראות על ניסיונות העלאה שנכשלו ועל שימוש מוגזם בדיסק.
  • כדי להימנע משמירה של יותר מדי קובצי ביקורת למשך זמן ארוך מדי, צריך להגדיר מדיניות לשמירת נתונים בקטגוריה של Cloud Storage.