Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Babelfish supporta i server collegati
Babelfish for Aurora Postgre SQL supporta i server collegati utilizzando l'estensione Postgre nella versione 3.1.0. SQL tds_fdw
Per utilizzare i server collegati, devi installare l'estensione tds_fdw
. Per ulteriori informazioni sull'estensione tds_fdw
, consulta Utilizzo dei wrapper di dati esterni supportati per Amazon Aurora Postgre Amazon for SQL .
Installazione dell'estensione tds_fdw
È possibile installare un'estensione tds_fdw
utilizzando i seguenti metodi.
Utilizzo dall'endpoint Postgre CREATE EXTENSION SQL
Connect alla tua istanza SQL DB Postgre sul database Babelfish nella porta Postgre. SQL Usa un account con il ruolo rds_superuser.
psql --host=
your-DB-instance.aws-region.rds.amazonaws.com
--port=5432 --username=test
--dbname=babelfish_db --password
Installa l'estensione
tds_fdw
. Questo è un processo di installazione da compiere una sola volta. Non è necessario ripetere l'installazione al riavvio del cluster di database.babelfish_db=> CREATE EXTENSION tds_fdw; CREATE EXTENSION
Chiamata TDS della stored procedure dall'endpoint sp_execute_postgresql
Babelfish supporta l'installazione dell'estensione tds_fdw
richiamando la procedure sp_execute_postgresql
a partire dalla versione 3.3.0. È possibile eseguire SQL istruzioni Postgre dall'SQLendpoint T- senza uscire dalla porta T. SQL Per ulteriori informazioni, consulta Lavorare con Babelfish per le procedure di Aurora Postgre SQL
Connect alla propria istanza Postgre SQL DB sul database Babelfish nella porta T. SQL
sqlcmd -S
your-DB-instance.aws-region.rds.amazonaws.com
-Utest
-Ppassword
Installa l'estensione
tds_fdw
.1>
EXEC sp_execute_postgresql N'CREATE EXTENSION tds_fdw';2>go
Funzionalità supportate
Babelfish supporta l'aggiunta di endpoint RDS remoti for SQL Server o Babelfish for Aurora SQL Postgre come server collegato. Puoi anche aggiungere altre istanze remote del Server come server collegati. SQL Quindi, usa OPENQUERY()
per recuperare i dati da questi server collegati. A partire dalla versione 3.2.0 di Babelfish, sono supportati anche i nomi in quattro parti.
Le seguenti stored procedure e visualizzazioni del catalogo sono supportate per utilizzare i server collegati.
Stored procedure
sp_addlinkedserver: Babelfish non supporta il parametro
@provstr
.sp_addlinkedsrvlogin
È necessario fornire un nome utente e una password remoti espliciti per connetterti all'origine dati remota. Non puoi connetterti mediante le credenziali automatiche dell'utente. Babelfish supporta solo
@useself = false
.Babelfish non supporta il parametro
@locallogin
poiché non è supportata la configurazione dell'accesso del server remoto specifico per l'accesso locale.
sp_linkedservers
sp_helplinkedsrvlogin
sp_dropserver
sp_droplinkedsrvlogin: Babelfish non supporta il parametro
@locallogin
poiché non è supportata la configurazione dell'accesso del server remoto specifico per l'accesso locale.sp_serveroption: Babelfish supporta le seguenti opzioni del server:
timeout delle query (a partire dalla versione 3.2.0)
timeout di connessione (a partire dalla versione 3.3.0)
sp_testlinkedserver (a partire dalla versione 3.3.0 di Babelfish)
sp_enum_oledb_providers (a partire dalla versione 3.3.0 di Babelfish)
Visualizzazioni del catalogo
sys.servers
sys.linked_logins
Utilizzo della crittografia in transito per la connessione
La connessione dal server Babelfish di origine per Aurora Postgre al SQL server remoto di destinazione utilizza la crittografia in transito (TLS/SSL), a seconda della configurazione del database del server remoto. Se il server remoto non è configurato per la crittografia, il server Babelfish che effettua la richiesta al database remoto esegue il fallback su non crittografato.
Per applicare la crittografia della connessione
Se il server collegato di destinazione è un'istanza for Server, RDS
rds.force_ssl = on
impostalo per l'istanza SQL Server di destinazione. SQL Per ulteriori informazioni suSSL/TLSconfiguration RDS for SQL Server, vedere Utilizzo SSL con un'istanza DB di Microsoft SQL ServerSe il server collegato di destinazione è un SQL cluster Babelfish per Aurora Postgre, imposta
babelfishpg_tds.tds_ssl_encrypt = on
e per il server di destinazione.ssl = on
Per ulteriori informazioni su/, vedere. SSL TLS Impostazioni SSL Babelfish e connessioni client
Aggiungere Babelfish come server collegato da Server SQL
Babelfish for Aurora Postgre SQL può essere aggiunto come server collegato da un Server. SQL Su un database SQL Server, puoi aggiungere Babelfish come server collegato utilizzando il provider Microsoft OLE DB perODBC:. MSDASQL
Esistono due modi per configurare Babelfish come server collegato da SQL Server utilizzando il provider: MSDASQL
Fornire ODBC la stringa di connessione come stringa del provider.
Fornisci il sistema DSN di origine ODBC dati durante l'aggiunta del server collegato.
Limitazioni
OPENQUERY() funziona solo per SELECT e non funziona perDML.
I nomi degli oggetti in quattro parti funzionano solo per la lettura e non per la modifica della tabella remota. An UPDATE può fare riferimento a una tabella remota nella FROM clausola senza modificarla.
L'esecuzione di stored procedure sui server collegati a Babelfish non è supportata.
L'aggiornamento della versione principale di Babelfish potrebbe non funzionare se sono presenti oggetti dipendenti da
OPENQUERY()
o oggetti a cui si fa riferimento tramite nomi in quattro parti. Devi verificare che tutti gli oggetti che fanno riferimento aOPENQUERY()
o a nomi in quattro parti vengano eliminati prima di un aggiornamento della versione principale.I seguenti tipi di dati non funzionano come previsto sul server Babelfish remoto:
nvarchar(max)
,varchar(max)
,varbinary(max)
,binary(max)
etime
. Si consiglia di utilizzare la CAST funzione per convertirli nei tipi di dati supportati.
Esempio
Nell'esempio seguente, un'istanza di Babelfish for Aurora Postgre si connette a un'SQListanza di RDS for Server nel cloud. SQL
EXEC master.dbo.sp_addlinkedserver @server=N'rds_sqlserver', @srvproduct=N'', @provider=N'SQLNCLI', @datasrc=N'
myserver.CB2XKFSFFMY7.US-WEST-2.RDS.AMAZONAWS.COM
'; EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'rds_sqlserver',@useself=N'False',@locallogin=NULL,@rmtuser=N'username
',@rmtpassword='password
';
Quando il server collegato è attivo, puoi quindi utilizzare T- SQL OPENQUERY () o la denominazione standard in quattro parti per fare riferimento a una tabella, una vista o altri oggetti supportati sul server remoto:
SELECT * FROM OPENQUERY(rds_sqlserver, 'SELECT * FROM TestDB.dbo.t1'); SELECT * FROM rds_sqlserver.TestDB.dbo.t1;
Per eliminare il server collegato e tutti gli accessi associati:
EXEC master.dbo.sp_dropserver @server=N'rds_sqlserver', @droplogins=N'droplogins';
Risoluzione dei problemi
È possibile utilizzare lo stesso gruppo di sicurezza sia per i server di origine sia per quelli remoti per consentire la comunicare tra loro. Il gruppo di sicurezza dovrebbe consentire solo il traffico in entrata sulla TDS porta (1433 per impostazione predefinita) e l'IP di origine nel gruppo di sicurezza può essere impostato come ID del gruppo di sicurezza stesso. Per ulteriori informazioni su come impostare le regole per la connessione a un'istanza da un'altra istanza con lo stesso gruppo di sicurezza, consulta Regole per la connessione alle istanze da un'istanza con lo stesso gruppo di sicurezza.
Se l'accesso non è configurato correttamente, quando si tenta di eseguire una query sul server remoto viene visualizzato un messaggio di errore simile al seguente.
TDS client library error: DB #: 20009, DB Msg: Unable to connect: server is unavailable or does not exist (mssql2019.aws-region.rds.amazonaws.com), OS #: 110, OS Msg: Connection timed out, Level: 9