במאמר הזה מוסבר איך לייצא התחברויות ל-SQL Server, מזהי אבטחה (SID) וגיבובים של סיסמאות ממופע של Cloud SQL ל-SQL Server באמצעות הפרוצדורה המאוחסנת sp_help_revlogin.
כשמעבירים מסדי נתונים, מגדירים סנכרון של מסדי נתונים או מתחזקים עותקים לקריאה ועוד עותקים לשחזור מאסון (DR), צריך ליצור מחדש את פר��י הכניסה של המשתמשים במופע היעד עם מזהי אבטחה (SID) וגיבובים של סיסמאות שתואמים לאלה של המשתמשים. כך אפשר לוודא שהמשתמשים במסד הנתונים ימשיכו להיות ממופים לפרטי הכניסה המתאימים שלהם לשרת, ושההרשאות שלהם יישארו בתוקף.
Cloud SQL ל-SQL Server מספק את הפרוצדורה המאוחסנת sp_help_revlogin במסד הנתונים msdb כדי ליצור סקריפטים של Transact-SQL (T-SQL) ליצירה מחדש של פרטי התחברות של משתמשים.
לפני שמתחילים
התפקידים הנדרשים
כדי לקבל את ההרשאה שדרושה להגדרה של דגלים במסד נתונים, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בפרויקט:
- Cloud SQL Admin (
roles/cloudsql.admin) - עורך Cloud SQL (
roles/cloudsql.editor)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקיד המוגדר מראש הזה כולל את ההרשאה cloudsql.instances.update, שנדרשת כדי להגדיר דגלים של מסד נתונים.
יכול להיות שתוכלו לקבל את ההרשאה הזו גם בתפקידים בהתאמה אישית או בתפקידים אחרים שמוגדרים מראש.
הרשאות למסד נתונים
מוודאים שיש לכם גישה לתפקיד המשתמש של SQL Server שמוגדר כברירת מחדל sqlserver.
הפעלת הדגל של מסד הנתונים
כדי להתקין את הפרוצדורה המאוחסנת sp_help_revlogin במסד הנתונים msdb, צריך להפעיל את דגל מסד הנתונים cloud sql enable sp_help_revlogin במופע.
מסוףGoogle Cloud
- נכנסים לדף Cloud SQL Instances במסוף Google Cloud .
- לוחצים על שם המופע כדי לפתוח את הדף סקירה כללית.
- לוחצים על Edit.
- בקטע Customize your instance, מרחיבים את Flags.
- לוחצים על הוספת דגל.
- בוחרים באפשרות cloud sql enable sp_help_revlogin מתוך רשימת הדגלים הזמינים.
- מגדירים את ערך הדגל ל-on.
- לוחצים על Save.
CLI של gcloud
מפעילים את הדגל באמצעות ה-CLI של gcloud:
gcloud sql instances patch INSTANCE_NAME \ --database-flags="cloud sql enable sp_help_revlogin=on"
מחליפים את INSTANCE_NAME בשם של מופע Cloud SQL.
חיבור באמצעות כלי לקוח נתמך
הפלט של sp_help_revlogin הפרוצדורה המאוחסנת CREATE LOGINהוא סקריפטים שנוצרו באמצעות הצהרות T-SQL PRINT (הודעות מידע) ולא מערכי תוצאות בטבלה (הצהרות SELECT).
מתחברים למופע Cloud SQL באמצעות אחד מהכלים הבאים:
- SQL Server Management Studio (SSMS): מתחברים למופע, מריצים את הפרוצדורה ומציגים את הסקריפטים שנוצרו בכרטיסייה Messages. לחלופין, אפשר ללחוץ על Control+T כדי להעביר את מצב הפלט של הביצוע אל תוצאות לטקסט לפני שמריצים את השאילתה.
- Visual Studio Code: מתחברים באמצעות התוסף MSSQL, מריצים את הפרוצדורה וצופים בתסריטים שנוצרו בכרטיסייה Messages.
כלי השירות sqlcmd: מתחברים למופע ומייצאים את הסקריפטים שנוצרו ישירות לקובץ SQL:
sqlcmd -S INSTANCE_IP \ -U USERNAME \ -P PASSWORD -d msdb \ -Q "EXEC dbo.sp_help_revlogin" -o output_logins.sqlמחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE_IP: כתובת ה-IP של מופע Cloud SQL. -
USERNAME: שם המשתמש שלכם במסד הנתונים הניהולי (למשלsqlserver). -
PASSWORD: הסיסמה של משתמש מסד הנתונים.
-
ייצוא של פרטי התחברות באמצעות sp_help_revlogin
מתחברים למסד הנתונים msdb ומריצים את הפרוצדורה המאוחסנת sp_help_revlogin.
��די לייצא את כל פרטי הכניסה של הלקוחות:
EXEC msdb.dbo.sp_help_revlogin;כדי לייצא התחברות ספציפית:
EXEC msdb.dbo.sp_help_revlogin @login_name = 'LOGIN_NAME';מחליפים את
LOGIN_NAMEבשם הכניסה שרוצים לייצא.
יצירה מחדש של פרטי התחברות במופע היעד
- מעתיקים את הצהרות
CREATE LOGINשנוצרו מפלט השאילתה. - מתחברים למכונה של SQL Server ביעד.
- מריצים את ההצהרות שנוצרו בחלון שאילתה או באמצעות
sqlcmd.
ההצהרות שנוצרות יוצרות את פרטי הכניסה במופע היעד עם מזהי האבטחה המקוריים, מסדי הנתונים שמוגדרים כברירת מחדל וגיבוב הסיסמאות. מידע נוסף על שיקולים בהעברת פרטי התחברות בין מופעים זמין במסמכי Microsoft בנושא העברת פרטי התחברות וסיסמאות בין מופעים של SQL Server.
סנכרון התחברויות עם עותקים לקריאה
כש-Cloud SQL יוצר רפליקה לקריאה או רפליקה להתאוששות מאסון (DR), הוא מעתיק את פרטי הכניסה הקיימים מהמופע הראשי. עם זאת, התחברויות שנוצרו במופע הראשי אחרי יצירת העותק לא משוכפלות אוטומטית.
למרות שמסדי נתונים של משתמשים בעותק לקריאה בלבד הם לקריאה בלבד, אפשר להתחבר לעותק לקריאה בלבד ולהפעיל את ההצהרות CREATE LOGIN שנוצרו על ידי sp_help_revlogin במסד הנתונים master של העותק.
מומלץ לייצא באופן שוטף התחברויות חדשות מהמכונה הראשית וליצור אותן מחדש ברפליקות לקריאה וברפליקות DR. סנכרון שגרתי מבטיח שהמשתמשים יוכלו לבצע אימות כדי לקרוא רפליקות, ושהאפליקציות יוכלו להתחבר מחדש מיד אחרי מעבר לגיבוי, יתירות כשל של רפליקה או קידום של רפליקה.
מגבלות וכניסות שלא נכללות
sp_help_revlogin מחריג באופן אוטומטי מהייצוא את סוגי הכניסות הבאים:
- Google Cloud חשבונות שירות וחשבונות ניהול פנימיים.
- חשבונות מערכת פנימיים של SQL Server (שמות הכניסה מתחילים בקידומת
##). - התפקיד הקבוע בשרת
sysadminהוקצה להתחברויות. - כניסות שהוקצו לתפקידי אדמין מוגבלים בשרת.
השבתת הדגל של מסד הנתונים
אם אין יותר צורך בפרוצדורה המאוחסנת, צריך להגדיר את הדגל לערך off (או להסיר את הדגל מהמופע):
מסוףGoogle Cloud
- נכנסים לדף Cloud SQL Instances במסוף Google Cloud .
- לוחצים על שם המופע כדי לפתוח את הדף סקירה כללית.
- לוחצים על Edit.
- בקטע Customize your instance, מרחיבים את Flags.
- מחפשים את cloud sql enable sp_help_revlogin ומגדירים את הערך שלו ל-off (או לוחצים על מחיקה כדי להסיר את הדגל).
- לוחצים על Save.
CLI של gcloud
gcloud sql instances patch INSTANCE_NAME \ --database-flags="cloud sql enable sp_help_revlogin=off"
כשההגדרה היא off או שהיא מוסרת, Cloud SQL משמיט באופן אוטומטי את dbo.sp_help_revlogin ממסד הנתונים msdb.
המאמרים הבאים
- מידע נוסף על משתמשי SQL Server זמין במאמר משתמשי SQL Server.
- מידע נוסף על הגדרת דגלים של מסד נתונים זמין במאמר הגדרת דגלים של מסד נתונים.
- מידע נוסף על תהליכים מאוחסנים נתמכים זמין במאמר בנושא תהליכים מאוחסנים ב-SQL Server.
- מידע נוסף על העברת פרטי כניסה וסיסמאות זמין במאמר בנושא העברת פרטי כניסה וסיסמאות בין מופעים של SQL Server.