Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Verbinden von Oracle mit SQL Server über eine sichere Verbindung

Mit dem SQL Server-ODBC-Treiber können Sie Oracle auf Linux- und UNIX-Plattformen mit SQL Server oder SQL Azure verbinden. Wenn Sie sich entscheiden, die Netzwerkverbindung von Ihren Clientanwendungen zu SQL Server zu verschlüsseln, oder wenn Sie SQL Azure verwenden, müssen Sie die TLS-Version des Treibers verwenden, die in der SQL Server-ODBC-Treiberverteilung enthalten ist.

Wenn Sie nicht die TLS-Version des SQL Server-ODBC-Treibers verwenden, um eine Verbindung zu einer SQL Server-Instanz herzustellen, die für die Anforderung einer verschlüsselten Verbindung konfiguriert wurde, erhalten Sie diesen Fehler:

Client unable to establish connection: SSL requested but not supported

Wenn Sie bereits den Easysoft SQL Server ODBC-Treiber mit Oracle verwenden:

  1. In der SQL Server-Datenquelle, auf die von HS_FDS_CONNECT_INFO verwiesen wird in Ihrer initSID.ora , nehmen Sie die folgenden Änderungen vor:
    1. Ändern Sie den Driver von:
      Driver = Easysoft ODBC-SQL Server

      zu:

      Driver = Easysoft ODBC-SQL Server SSL
    2. Fügen Sie diese Zeilen hinzu:
      Encrypt = Yes
      TrustServerCertificate = Yes
  2. Wenn Sie in initSID.ora , ändern Sie den HS_FDS_SHAREABLE_NAME Wert auf:
    install_dir/easysoft/sqlserver/lib/libessqlsrv_ssl.so
  3. Starten Sie den Oracle-Listener neu.

Wenn Sie ein neuer Benutzer sind:

  1. Installieren und lizenzieren Sie den SQL Server ODBC-Treiber auf dem Rechner, auf dem Oracle installiert ist.

    Installationsanweisungen finden Sie in der ODBC-Treiberdokumentation.

    Hinweis Sie müssen den unixODBC-Treibermanager auf Ihrem Computer installieren. Die Easysoft-Distribution enthält eine Version des unixODBC-Treiber-Managers, mit dem der Easysoft SQL Server-ODBC-Treiber getestet wurde. Das Setup-Programm des Easysoft-Treibers bietet Ihnen die Möglichkeit, unixODBC zu installieren.

  2. Erstellen Sie eine ODBC-Datenquelle in /etc/odbc.ini, die eine Verbindung zu der SQL Server-Datenbank herstellt, auf die Sie von Oracle® zugreifen möchten. Beispiel:
    [SQLSERVER_SAMPLE]
    Driver                 = Easysoft ODBC-SQL Server SSL
    Server                 = my_machine\SQLEXPRESS
    User                   = my_domain\my_user
    Password               = my_password
    # If the database you want to connect to is the default
    # for the SQL Server login, omit this attribute
    Database               = Northwind
    Encrypt                = Yes
    TrustServerCertificate = Yes
  3. Verwenden Sie isql, um die neue Datenquelle zu testen. Beispiel:
    cd /usr/local/easysoft/unixODBC/bin
    ./isql.sh -v SQLSERVER_SAMPLE
    

    Geben Sie an der Eingabeaufforderung „help“ ein, um eine Liste mit Tabellen anzuzeigen. Drücken Sie zum Beenden die Eingabetaste in einer leeren Eingabeaufforderungszeile.

    Wenn Sie keine Verbindung herstellen können, finden Sie Hilfe in diesem Artikel.

  4. Erstellen Sie eine DG4ODBC-Init-Datei. Wechseln Sie dazu in den hs/admin Unterverzeichnis. Beispiel:
    cd $ORACLE_HOME/product/11.2.0/xe/hs/admin
    

    Erstellen Sie eine Kopie der Datei initdg4odbc.ora . Benennen Sie die neue Datei initmssql.ora .

  5. Stellen Sie sicher, dass diese Parameter und Werte in Ihrer Init-Datei vorhanden sind:
    HS_FDS_CONNECT_INFO = var>my_mssql_odbc_dsn
    

    Ersetzen Sie my_mssql_odbc_dsn mit dem Namen einer SQL Server-ODBC-Treiberdatenquelle, die eine Verbindung mit der SQL Server-Zielinstanz herstellt. Zum Beispiel

    HS_FDS_CONNECT_INFO = "SQLSERVER_SAMPLE"
    
  6. Kommentieren Sie die Zeile aus, die die DG4ODBC-Ablaufverfolgung aktiviert. Beispiel:
    #HS_FDS_TRACE_LEVEL = <trace_level>
    
  7. Fügen Sie einen Eintrag zu listener.ora hinzu die einen SID_NAME für DG4ODBC erstellt. Beispiel:
    SID_LIST_LISTENER =
     (SID_LIST =
       (SID_DESC=
         (SID_NAME=mssql)
         (ORACLE_HOME=$ORACLE_HOME)
         (PROGRAM=dg4odbc)
       )
     )
    
  8. Fügen Sie einen DG4ODBC-Eintrag zu tnsnames.ora hinzu die den im vorherigen Schritt erstellten SID_NAME angibt. Zum Beispiel:
    MSSQL =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = oracle_host)(PORT = 1521))
        (CONNECT_DATA =
          (SID = mssql)
        )
        (HS = OK)
      )
    

    Ersetzen Sie oracle_host durch den Hostnamen Ihres Oracle®-Rechners.

  9. Starten (oder starten) Sie den Oracle® Listener. Beispiel:
    lsnrctl stop
    lsnrctl start
    
  10. Verbinden Sie sich mit Ihrer Oracle®-Datenbank in SQL*Plus.
  11. Erstellen Sie in SQL*Plus eine Datenbankverknüpfung für die SQL Server-Zielinstanz. Zum Beispiel:
    CREATE PUBLIC DATABASE LINK mssqllink CONNECT TO
    "my_sqlserver_user" IDENTIFIED by "my_password" USING 'mssql';
    SELECT * from suppliers@mssqllink
    
Notizen
  • Wenn Sie Probleme haben, sich von Oracle® mit SQL Server zu verbinden, aktivieren Sie die DG4ODBC-Ablaufverfolgung und überprüfen Sie die Ablaufverfolgungsdateien, die in hs/log geschrieben werden Verzeichnis. Um die DG4ODBC-Ablaufverfolgung zu aktivieren, fügen Sie die Zeile HS_FDS_TRACE_LEVEL = DEBUG hinzu zu initmssql.ora und dann den Oracle®-Listener starten/neu starten. Wenn das log Verzeichnis existiert nicht, erstellen Sie es. Beispiel:
    mkdir log
    chmod +w log