Auf dieser Seite finden Sie Informationen zum Verwalten verknüpfter Server in Ihrer Cloud SQL-Instanz, einschließlich der Registrierung einer Instanz, dem Hinzufügen von verknüpften Servern und dem Abfragen von verknüpften Servern.
Instanz registrieren, um verknüpfte Server zuzulassen
Fügen Sie Ihrer Instanz das Flag cloudsql enable linked servers mit dem folgenden Befehl hinzu:
gcloud sql instances patch INSTANCE_NAME --database-flags="cloudsql enable linked servers"=on
Ersetzen Sie INSTANCE_NAME durch den Namen der Instanz, die Sie zum Verknüpfen von Servern verwenden möchten.
Weitere Informationen finden Sie unter Datenbank-Flags konfigurieren.
Verknüpften Server hinzufügen
Führen Sie den Transact-SQL-Befehl sp_addlinkedserver aus, um einen verknüpften Server hinzuzufügen:
EXEC master.dbo.sp_addlinkedserver @server = N'LINKED_SERVER_NAME', @srvproduct=N'', @provider=N'MSOLEDBSQL', @datasrc=N'TARGET_SERVER_ID'
Dabei gilt:
- Ersetzen Sie LINKED_SERVER_NAME durch den Namen des zu erstellenden verknüpften Servers.
- Ersetzen Sie TARGET_SERVER_ID durch den Netzwerknamen, DNS-Namen oder die IP-Adresse
des verknüpften Servers. Verwenden Sie für den Instanznamen das Format
servername\instancename. Wenn Ihre Instanz einen nicht standardmäßigen Port verwendet, fügen Sie die Portnummer hinzu. Beispiel:servername\instancename, 8080.
Führen Sie den folgenden Befehl aus, um die Nutzerzuordnung für einen angemeldeten Nutzer hinzuzufügen:
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'LINKED_SERVER_NAME', @useself=N'True'
Ersetzen Sie LINKED_SERVER_NAME durch den Namen des verknüpften Servers.
Führen Sie den folgenden Befehl aus, um die standardmäßige Remote-Anmeldung und das Passwort zu erstellen oder zu aktualisieren und auf alle lokalen Anmeldungen anzuwenden:
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'LINKED_SERVER_NAME', @useself=N'False', @locallogin=N'LOGIN', @rmtuser=N'USER_ID', @rmtpassword='PASSWORD';
Dabei gilt:
- LINKED_SERVER_NAME durch den Namen des verknüpften Servers.
- LOGIN durch die Anmeldung für den lokalen Server.
localloginist „sysname“ mit dem Standardwert NULL. NULL gibt an, dass dieser Eintrag für alle lokalen Anmeldungen gilt, die eine Verbindung zurmtsrvnameherstellen. Wenn nicht NULL, istlocalloginentweder eine SQL Server- oder eine Windows-Anmeldung. Wenn Sie eine Windows-Anmeldung verwenden, muss sie entweder direkt oder über die Mitgliedschaft in einer Windows-Gruppe mit Zugriff auf den SQL Server zugreifen können. - USER_ID durch den Nutzer, der sich anmeldet.
- PASSWORD durch das Nutzerpasswort.
Verknüpften Server mit einer verschlüsselten Verbindung hinzufügen
Führen Sie den Transact-SQL-Befehl sp_addlinkedserver aus, um einen verknüpften Server mit einer verschlüsselten Verbindung hinzuzufügen:
EXEC master.dbo.sp_addlinkedserver @server = N'LINKED_SERVER_NAME', @srvproduct=N'', @provider=N'MSOLEDBSQL', @datasrc=N'TARGET_SERVER_ID, @provstr=N'Encrypt=yes;'
Dabei gilt:
- Ersetzen Sie LINKED_SERVER_NAME durch den Namen des zu erstellenden verknüpften Servers.
- TARGET_SERVER_ID durch den Namen des Zielservers oder die IP-Adresse und die Portnummer für den Zielserver.
Wenn sich der Name des Servers vom Namen im Zertifikat unterscheidet, müssen Sie angeben, dass der SQL Server dem Serverzertifikat vertrauen kann. Führen Sie den folgenden Befehl aus, um die Anbieter-String zu aktualisieren:
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;'
Dabei gilt:
- Ersetzen Sie LINKED_SERVER_NAME durch den Namen des zu erstellenden verknüpften Servers.
- TARGET_SERVER_ID durch den Namen des Zielservers oder die IP-Adresse und die Portnummer für den Zielserver.
Abfragen verknüpfter Server
Cloud SQL unterstützt die Verwendung von vierteiligen Namen zum Abfragen verknüpfter Server (Servername, Datenbankname, Schemaname und Objektname) sowie die folgenden Befehle:
- Mit OPENQUERY wird eine Abfrage auf einem angegebenen Server ausgeführt.
- EXECUTE Mit EXECUTE können Sie dynamisches SQL für einen verknüpften Server ausführen.
Weitere Informationen finden Sie unter Vergleich der Optionen für die Remoteausführung von Abfragen.
Remoteprozeduraufrufe auf einem verknüpften Server aktivieren
Mit Remoteprozeduraufrufen (RPC, remote Procedure Calls) können Sie gespeicherte Prozeduren auf verknüpften Servern ausführen. Um
RPC hinzuzufügen, führen Sie den Transact-SQL
sp_serveroption
Befehl mit einem RPC-Argument aus. Es gibt zwei RPC-Argumente:
rpcaktiviert RPC vom angegebenen Server.rpc outaktiviert RPC zum angegebenen Server.
Verwenden Sie den folgenden sp_serveroption-Befehl mit dem rpc-Argument, um
RPC von LINKED_SERVER_NAME zu aktivieren:
EXEC sp_serveroption @server='LINKED_SERVER_NAME', @optname='rpc', @optvalue='TRUE'
Ersetzen Sie LINKED_SERVER_NAME durch den Namen des verknüpften Servers.
Verwenden Sie den folgenden sp_serveroption-Befehl mit dem Argument rpc out, um RPC zu aktivieren:
EXEC sp_serveroption @server='LINKED_SERVER_NAME', @optname='rpc out', @optvalue='TRUE'
Ersetzen Sie LINKED_SERVER_NAME durch den Namen des verknüpften Servers.
Nutzerzuordnung für einen verknüpften Server entfernen
Führen Sie den folgenden Befehl aus, um eine zuvor hinzugefügte Nutzerzuordnung zu entfernen:
EXEC master.dbo.sp_droplinkedsrvlogin @rmtsrvname=N'LINKED_SERVER_NAME', @locallogin=N'LOGIN';
Dabei gilt:
- Ersetzen Sie LINKED_SERVER_NAME durch den Namen des zu entfernenden verknüpften Servers.
- LOGIN durch die Anmeldung für den lokalen Server.
localloginist „sysname“ mit dem Standardwert NULL. NULL gibt an, dass dieser Eintrag für alle lokalen Anmeldungen gilt, die eine Verbindung zurmtsrvnameherstellen. Wenn nicht NULL, istlocalloginentweder eine SQL Server- oder eine Windows-Anmeldung. Wenn Sie eine Windows-Anmeldung verwenden, muss sie entweder direkt oder über die Mitgliedschaft in einer Windows-Gruppe mit Zugriff auf den SQL Server zugreifen können.
Registrierte Instanz entfernen, um verknüpfte Server zu deaktivieren
So entfernen Sie verknüpfte Server:
- Entfernen Sie vorhandene verknüpfte Server mit der gespeicherten Transact-SQL-Prozedur sp_dropserver.
Entfernen Sie das Flag
cloudsql enable linked servers, um eine registrierte Instanz zu entfernen.gcloud sql instances patch INSTANCE_NAME --database-flags="cloudsql enable linked servers"=off
Ersetzen Sie
INSTANCE_NAMEdurch den Namen der Instanz, aus der Sie verknüpfte Server entfernen möchten.Alternativ können Sie den folgenden Befehl ausführen, um alle Datenbank-Flags zu entfernen:
gcloud sql instances patch INSTANCE_NAME --clear-database-flags
Ersetzen Sie
INSTANCE_NAMEdurch den Namen der Instanz, aus der Sie verknüpfte Server entfernen möchten.
Fehlerbehebung
| Problem | Fehlerbehebung |
|---|---|
Msg 7411, Level 16, State 1, Line 25
|
Die Option DataAccess ist deaktiviert. Führen Sie den folgenden Befehl aus, um den Datenzugriff zu aktivieren:EXEC sp_serveroption @server='LINKED_SERVER_NAME', @optname='data access', @optvalue='TRUE' Ersetzen Sie LINKED_SERVER_NAME durch den Namen des verknüpften Servers. |
Access to the remote server is denied because no
login-mapping exists. (Microsoft SQL Server, Error: 7416)
|
Wenn dieses Problem bei der Herstellung einer verschlüsselten Verbindung auftritt, müssen Sie eine andere Methode angeben, um die Nutzer-ID beim Zugriff auf den verknüpften Server anzugeben. Führen Sie hierzu den folgenden Befehl aus:
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' Ersetzen Sie Folgendes:
|
| Unerwartetes Verhalten | Wenn Sie unerwartetes Verhalten feststellen, prüfen Sie, ob Sie einen unterstützten Anbieter verwenden. Weitere Informationen finden Sie unter der Microsoft-Dokumentation. |