במאמר הזה מוסבר איך לייצא התחברויות ל-SQL Server, מזהי אבטחה (SID) וגיבובים של סיסמאות ממופע של Cloud SQL ל-SQL Server באמצעות הפרוצדורה המאוחסנת sp_help_revlogin.
כשמעבירים מסדי נתונים או מגדירים סנכרון של מסדי נתונים בין מופעים של SQL Server, צריך ליצור מחדש את פרטי הכניסה של המשתמשים במופע היעד עם מזהי אבטחה (SID) וגיבובים של סיסמאות שתואמים לאלה של המשתמשים. כך מוודאים שמשתמשי מסד הנתונים ימשיכו להיות ממופים לפרטי הכניסה המתאימים שלהם לשרת, ושההרשאות שלהם יישארו בתוקף.
Cloud SQL ל-SQL Server מספק את הפרוצדורה המאוחסנת sp_help_revlogin במסד הנתונים msdb כדי ליצור סקריפטים של Transact-SQL (T-SQL) ליצירה מחדש של התחברויות משתמשים.
לפני שמתחילים
התפקידים הנדרשים
כדי לקבל את ההרשאה שדרושה להגדרה של דגלים במסד נתונים, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בפרויקט:
- Cloud SQL Admin (
roles/cloudsql.admin) - Cloud SQL Editor (
roles/cloudsql.editor)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקיד המוגדר מראש הזה כולל את ההרשאה cloudsql.instances.update, שנדרשת כדי להגדיר דגלים של מסד נתונים.
יכול להיות שתוכלו לקבל את ההרשאה הזו גם בתפקידים בהתאמה אישית או בתפקידים אחרים שמוגדרים מראש.
הרשאות למסד נתונים
מוודאים שיש לכם גישה לתפקיד המשתמש sqlserver SQL Server שמוגדר כברירת מחדל.
הפעלת התכונה הניסיונית Database (מסד נתונים)
כדי להתקין את הפרוצדורה המאוחסנת 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.
מגבלות וכניסות שלא נכללות
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.