שרתים מקושרים מאפשרים לכם לקרוא נתונים ולהריץ פקודות במסדי נתונים חיצוניים של SQL Server מ-Cloud SQL. אחרי שרושמים את המכונה, אפשר להגדיר חיבורים מוצפנים, למפות את פרטי הכניסה של המשתמשים ולהריץ שאילתות מבוזרות או קריאות לשירות מרוחק (RPC).
רישום המכונה כדי לאפשר שרתים מקושרים
כדי להוסיף את הדגל cloudsql enable linked servers למכונה, משתמשים בפקודה הבאה:
gcloud sql instances patch INSTANCE_NAME --database-flags="cloudsql enable linked servers"=on
מחליפים את INSTANCE_NAME בשם המכונה שרוצים להשתמש בה לקישור שרתים.
מידע נוסף זמין במאמר הגדרת דגלים לניהול מסדי נתונים.
הוספת שרת מקושר
כדי להוסיף שרת מקושר, מריצים את הפקודה sp_addlinkedserver ב-Transact-SQL:
EXEC master.dbo.sp_addlinkedserver @server = N'LINKED_SERVER_NAME', @srvproduct=N'', @provider=N'MSOLEDBSQL', @datasrc=N'TARGET_SERVER_ID'
מחליפים את מה שכתוב בשדות הבאים:
- LINKED_SERVER_NAME בשם השרת המקושר שרוצים ליצור.
- TARGET_SERVER_ID עם שם הרשת, שם ה-DNS או כתובת ה-IP של השרת המקושר. בשם המכונה, משתמשים בפורמט
servername\instancename. אם המכונה משתמשת ביציאה לא סטנדרטית, מוסיפים את מספר היציאה. לדוגמה,servername\instancename, 8080.
כדי להוסיף מיפוי למשתמש שמחובר, מריצים את הפקודה הבאה:
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'LINKED_SERVER_NAME', @useself=N'True'
מחליפים את LINKED_SERVER_NAME בשם של השרת המקושר.
כדי ליצור או לעדכן את פרטי ההתחברות והסיסמה המרוחקים שמוגדרים כברירת מחדל, ולהחיל אותם על כל פרטי ההתחברות המקומיים, מריצים את הפקודה הבאה:
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'LINKED_SERVER_NAME', @useself=N'False', @locallogin=N'LOGIN', @rmtuser=N'USER_ID', @rmtpassword='PASSWORD';
מחליפים את מה שכתוב בשדות הבאים:
- LINKED_SERVER_NAME בשם של השרת המקושר.
- LOGIN עם פרטי ההתחברות לשרת המקומי.
localloginהוא sysname, עם ערך ברירת מחדל של NULL. הערך NULL מציין שהרשומה הזו חלה על כל פרטי ההתחברות המקומיים שמתחברים אלrmtsrvname. אם הערך הוא לא NULL, localloginהוא פרטי כניסה לשרת SQL או ל-Windows. אם אתם משתמשים בפרטי כניסה ל-Windows, צריכה להיות להם גישה ל-SQL Server באופן ישיר או דרך החברות שלהם בקבוצת Windows שיש לה גישה. - USER_ID עם המשתמש שמבצע את ההתחברות.
- PASSWORD מחליפים בסיסמת המשתמש.
הוספת שרת מקושר עם חיבור מוצפן
כדי להוסיף שרת מקושר באמצעות חיבור מוצפן, מריצים את הפקודה Transact-SQL sp_addlinkedserver:
EXEC master.dbo.sp_addlinkedserver @server = N'LINKED_SERVER_NAME', @srvproduct=N'', @provider=N'MSOLEDBSQL', @datasrc=N'TARGET_SERVER_ID, @provstr=N'Encrypt=yes;'
מחליפים את מה שכתוב בשדות הבאים:
- LINKED_SERVER_NAME בשם השרת המקושר שרוצים ליצור.
- TARGET_SERVER_ID בשם של שרת היעד, או בכתובת ה-IP ובמספר היציאה של שרת היעד.
אם שם השרת שונה מהשם שמופיע באישור, צריך לציין ששרת ה-SQL יכול לסמוך על אישור השרת. כדי לעדכן את מחרוזת הספק, מריצים את הפקודה הבאה:
EXEC master.dbo.sp_addlinkedserver @server = N'LINKED_SERVER_NAME', @srvproduct=N'', @provider=N'MSOLEDBSQL', @datasrc=N'TARGET_SERVER_ID, @provstr=N'Encrypt=yes;TrustServerCertificate=yes;'
מחליפים את מה שכתוב בשדות הבאים:
- LINKED_SERVER_NAME בשם השרת המקושר שרוצים ליצור.
- TARGET_SERVER_ID בשם של שרת היעד, או בכתובת ה-IP ובמספר היציאה של שרת היעד.
שאילתות של שרתים מקושרים
ב-Cloud SQL אפשר להשתמש בשמות בני ארבעה חלקים כדי לשלוח שאילתות לשרתים מקושרים (שם השרת, שם מסד הנתונים, שם הסכימה ושם האובייקט), בנוסף לפקודות הבאות:
למידע נוסף, קראו את המאמר השוואה בין אפשרויות להרצת שאילתות מרחוק.
הפעלת קריאות לשירות מרוחק (RPC) בשרת מקושר
קריאות לשירות מרוחק (RPC) מאפשרות להריץ תהליכים מאוחסנים בשרתים מקושרים. כדי להוסיף RPC, מריצים את הפקודה sp_serveroption ב-Transact-SQL עם ארגומנט RPC. יש שני ארגומנטים של RPC:
rpcמפעיל RPC מהשרת שצוין.rpc outמפעיל RPC לשרת שצוין.
משתמשים בפקודה sp_serveroption הבאה עם הארגומנט rpc כדי להפעיל RPC מ-LINKED_SERVER_NAME:
EXEC sp_serveroption @server='LINKED_SERVER_NAME', @optname='rpc', @optvalue='TRUE'
מחליפים את LINKED_SERVER_NAME בשם של השרת המקושר.
כדי להפעיל את RPC, משתמשים בפקודה sp_serveroption הבאה עם הארגומנט rpc out:
EXEC sp_serveroption @server='LINKED_SERVER_NAME', @optname='rpc out', @optvalue='TRUE'
מחליפים את LINKED_SERVER_NAME בשם של השרת המקושר.
הסרת מיפוי המשתמשים של שרת מקושר
כדי להסיר מיפוי משתמשים שהוספתם בעבר, מריצים את הפקודה הבאה:
EXEC master.dbo.sp_droplinkedsrvlogin @rmtsrvname=N'LINKED_SERVER_NAME', @locallogin=N'LOGIN';
מחליפים את מה שכתוב בשדות הבאים:
- LINKED_SERVER_NAME בשם השרת המקושר שרוצים להסיר.
- LOGIN עם פרטי ההתחברות לשרת המקומי.
localloginהוא sysname, עם ערך ברירת מחדל של NULL. הערך NULL מציין שהרשומה הזו חלה על כל פרטי ההתחברות המקומיים שמתחברים אלrmtsrvname. אם הערך הוא לא NULL, localloginהוא פרטי כניסה לשרת SQL או ל-Windows. אם אתם משתמשים בפרטי כניסה ל-Windows, צריכה להיות להם גישה ל-SQL Server באופן ישיר או דרך החברות שלהם בקבוצת Windows שיש לה גישה.
הסרת מופע רשום מהרשאה לשרתים מקושרים
כדי להסיר שרתים מקושרים:
- מבטלים את הקישור לשרתים קיימים באמצעות הפרוצדורה המאוחסנת sp_dropserver של Transact-SQL.
כדי להסיר מכונה רשומה, מסירים את הדגל
cloudsql enable linked servers.gcloud sql instances patch INSTANCE_NAME --database-flags="cloudsql enable linked servers"=off
מחליפים את
INSTANCE_NAMEבשם המכונה שבה רוצים להסיר את השרתים המקושרים.לחלופין, אפשר להריץ את הפקודה הבאה כדי לנקות את כל הדגלים לניהול מסד הנתונים:
gcloud sql instances patch INSTANCE_NAME --clear-database-flags
מחליפים את
INSTANCE_NAMEבשם המכונה שבה רוצים להסיר את השרתים המקושרים.
פתרון בעיות
| שגיאה | פתרון בעיות |
|---|---|
Msg 7411, Level 16, State 1, Line 25
|
האפשרות DataAccess מושבתת. מריצים את הפקודה הבאה כדי להפעיל את הגישה לנתונים:EXEC sp_serveroption @server='LINKED_SERVER_NAME', @optname='data access', @optvalue='TRUE' מחליפים את LINKED_SERVER_NAME בשם של השרת המקושר. |
Access to the remote server is denied because no
login-mapping exists. (Microsoft SQL Server, Error: 7416)
|
אם הבעיה הזו מתרחשת בזמן יצירת חיבור מוצפן, צריך לנסות דרך אחרת כדי לספק את מזהה המשתמש כשניגשים לשרת המקושר. כדי לעשות את זה, מריצים את הפקודה הבאה:
EXEC master.dbo.sp_addlinkedserver @server = N'LINKED_SERVER_NAME', @srvproduct= N'', @provider= N'MSOLEDBSQL', @datasrc= N'TARGET_SERVER_ID', @provstr= N'Encrypt=yes;TrustServerCertificate=yes;User ID=USER_ID' מחליפים את הערכים בשדות הבאים:
|
| התנהגות לא צפויה | אם אתם נתקלים בהתנהגות לא צפויה, ודאו שאתם משתמשים בספק נתמך. מידע נוסף זמין במאמרי העזרה של Microsoft. |