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
Verwenden Sie den folgenden Befehl, um Ihrer Instanz das Flag cloudsql enable linked servers
hinzuzufügen:
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'SQLNCLI', @datasrc=N'TARGET_SERVER_ID'
Dabei gilt:
- LINKED_SERVER_NAME durch den Namen des zu erstellenden verknüpften Servers.
- TARGET_SERVER_ID durch den Netzwerknamen, den DNS-Namen oder die IP-Adresse für den verknüpften Server. 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 eine Nutzerzuordnung für einen derzeit 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 Standardanmeldung und das Standardpasswort für Remotezugriffe 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 mit den Anmeldedaten für den lokalen Server.
locallogin
ist „sysname“ mit dem Standardwert NULL. NULL gibt an, dass dieser Eintrag für alle lokalen Anmeldungen gilt, die eine Verbindung zurmtsrvname
herstellen. Wenn nicht NULL, istlocallogin
entweder eine SQL Server- oder eine Windows-Anmeldung. Wenn Sie eine Windows-Anmeldung verwenden, muss diese 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 Passwort des Nutzers.
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 über eine verschlüsselte Verbindung hinzuzufügen:
EXEC master.dbo.sp_addlinkedserver @server = N'LINKED_SERVER_NAME', @srvproduct=N'', @provider=N'SQLNCLI', @datasrc=N'TARGET_SERVER_ID, @provstr=N'Encrypt=yes;'
Dabei gilt:
- 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 den Anbieterstring zu aktualisieren:
EXEC master.dbo.sp_addlinkedserver @server = N'LINKED_SERVER_NAME', @srvproduct=N'', @provider=N'SQLNCLI', @datasrc=N'TARGET_SERVER_ID, @provstr=N'Encrypt=yes;TrustServerCertificate=yes;'
Dabei gilt:
- 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.
Verknüpfte Serverabfragen
Cloud SQL unterstützt die Verwendung von vierteiligen Namen für Abfragen verknüpfter Server (Servername, Datenbankname, Schemaname und Objektname) sowie die folgenden Befehle:
- OPENQUERY führt eine Abfrage auf einem angegebenen Server aus.
- Mit EXECUTE können Sie dynamische SQL-Abfragen auf einem verknüpften Server ausführen.
Weitere Informationen finden Sie unter Möglichkeiten zur Remote-Ausführung von Abfragen vergleichen.
Remote-Prozeduraufrufe auf einem verknüpften Server aktivieren
Mit Remoteprozeduraufrufen (RPC, remote Procedure Calls) können Sie gespeicherte Prozeduren auf verknüpften Servern ausführen. Zum Hinzufügen von RPC führen Sie den Transact-SQL-Befehl sp_serveroption
mit einem RPC-Argument aus. Es gibt zwei RPC-Argumente:
rpc
aktiviert RPC vom angegebenen Server.rpc out
aktiviert die RPC-Kommunikation mit dem angegebenen Server.
Verwenden Sie den folgenden sp_serveroption
-Befehl mit dem Argument rpc
, um RPC aus 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:
- LINKED_SERVER_NAME durch den Namen des zu löschenden verknüpften Servers.
- LOGIN mit den Anmeldedaten für den lokalen Server.
locallogin
ist „sysname“ mit dem Standardwert NULL. NULL gibt an, dass dieser Eintrag für alle lokalen Anmeldungen gilt, die eine Verbindung zurmtsrvname
herstellen. Wenn nicht NULL, istlocallogin
entweder eine SQL Server- oder eine Windows-Anmeldung. Wenn Sie eine Windows-Anmeldung verwenden, muss diese entweder direkt oder über die Mitgliedschaft in einer Windows-Gruppe mit Zugriff auf den SQL Server zugreifen können.
Eine registrierte Instanz aus der Zulassungsliste für verknüpfte Server entfernen
So entfernen Sie verknüpfte Server:
- Löschen Sie vorhandene verknüpfte Server mit der gespeicherten Prozedur sp_dropserver von Transact-SQL.
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_NAME
durch 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 löschen:
gcloud sql instances patch INSTANCE_NAME --clear-database-flags
Ersetzen Sie
INSTANCE_NAME
durch den Namen der Instanz, aus der Sie verknüpfte Server entfernen möchten.
Fehlerbehebung
Fehlermeldung | 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'SQLNCLI', @datasrc= N'TARGET_SERVER_ID', @provstr= N'Encrypt=yes;TrustServerCertificate=yes;User ID=USER_ID' Ersetzen Sie Folgendes:
|