Oracle
 sql >> Database >  >> RDS >> Oracle

Connessione di Oracle a SQL Server tramite una connessione protetta

Il driver ODBC di SQL Server consente di connettere Oracle su piattaforme Linux e UNIX a SQL Server o SQL Azure. Se decidi di crittografare la connessione di rete dalle tue applicazioni client a SQL Server o stai utilizzando SQL Azure, devi utilizzare la versione TLS del driver, inclusa nella distribuzione del driver ODBC di SQL Server.

Se non utilizzi la versione TLS del driver ODBC di SQL Server per la connessione a un'istanza di SQL Server configurata per richiedere una connessione crittografata, verrà visualizzato questo errore:

Client unable to establish connection: SSL requested but not supported

Se stai già utilizzando il driver ODBC di Easysoft SQL Server con Oracle:

  1. Nell'origine dati di SQL Server indicata da HS_FDS_CONNECT_INFO nel tuo initSID.ora , apportare le seguenti modifiche:
    1. Modifica il Driver da:
      Driver = Easysoft ODBC-SQL Server

      a:

      Driver = Easysoft ODBC-SQL Server SSL
    2. Aggiungi queste righe:
      Encrypt = Yes
      TrustServerCertificate = Yes
  2. Se si punta alla libreria dei driver anziché alla libreria di Driver Manager in initSID.ora , modifica il HS_FDS_SHAREABLE_NAME valore a:
    install_dir/easysoft/sqlserver/lib/libessqlsrv_ssl.so
  3. Riavvia il listener Oracle.

Se sei un nuovo utente:

  1. Installa e concede in licenza il driver ODBC di SQL Server sul computer in cui è installato Oracle.

    Per le istruzioni di installazione, vedere la documentazione del driver ODBC.

    Nota Hai bisogno di unixODBC Driver Manager installato sul tuo computer. La distribuzione Easysoft include una versione di unixODBC Driver Manager con cui è stato testato il driver ODBC di Easysoft SQL Server. Il programma di installazione del driver Easysoft ti dà la possibilità di installare unixODBC.

  2. Creare un'origine dati ODBC in /etc/odbc.ini che si connetta al database di SQL Server a cui si desidera accedere da Oracle®. Ad esempio:
    [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. Usa isql per testare la nuova origine dati. Ad esempio:
    cd /usr/local/easysoft/unixODBC/bin
    ./isql.sh -v SQLSERVER_SAMPLE
    

    Al prompt, digita "help" per visualizzare un elenco di tabelle. Per uscire, premi Invio in una riga di prompt vuota.

    Se non riesci a connetterti, fai riferimento a questo articolo per assistenza.

  4. Crea un file di inizializzazione DG4ODBC. Per fare ciò, cambia in hs/admin sottodirectory. Ad esempio:
    cd $ORACLE_HOME/product/11.2.0/xe/hs/admin
    

    Crea una copia del file initdg4odbc.ora . Assegna un nome al nuovo file initmssql.ora .

  5. Assicurati che questi parametri e valori siano presenti nel tuo file init:
    HS_FDS_CONNECT_INFO = var>my_mssql_odbc_dsn
    

    Sostituisci my_mssql_odbc_dsn con il nome di un'origine dati del driver ODBC di SQL Server che si connette all'istanza di destinazione di SQL Server. Ad esempio

    HS_FDS_CONNECT_INFO = "SQLSERVER_SAMPLE"
    
  6. Commenta la riga che abilita il tracciamento DG4ODBC. Ad esempio:
    #HS_FDS_TRACE_LEVEL = <trace_level>
    
  7. Aggiungi una voce a listener.ora che crea un SID_NAME per DG4ODBC. Ad esempio:
    SID_LIST_LISTENER =
     (SID_LIST =
       (SID_DESC=
         (SID_NAME=mssql)
         (ORACLE_HOME=$ORACLE_HOME)
         (PROGRAM=dg4odbc)
       )
     )
    
  8. Aggiungi una voce DG4ODBC a tnsnames.ora che specifica il SID_NAME creato nel passaggio precedente. Ad esempio:
    MSSQL =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = oracle_host)(PORT = 1521))
        (CONNECT_DATA =
          (SID = mssql)
        )
        (HS = OK)
      )
    

    Sostituisci oracle_host con il nome host della tua macchina Oracle®.

  9. Avvia (o riavvia) Oracle® Listener. Ad esempio:
    lsnrctl stop
    lsnrctl start
    
  10. Connettiti al tuo database Oracle® in SQL*Plus.
  11. In SQL*Plus, creare un collegamento al database per l'istanza di destinazione di SQL Server. Ad esempio:
    CREATE PUBLIC DATABASE LINK mssqllink CONNECT TO
    "my_sqlserver_user" IDENTIFIED by "my_password" USING 'mssql';
    SELECT * from suppliers@mssqllink
    
Note
  • Se si verificano problemi di connessione a SQL Server da Oracle®, abilitare la traccia DG4ODBC e controllare i file di traccia scritti in hs/log directory. Per abilitare il tracciamento DG4ODBC, aggiungi la riga HS_FDS_TRACE_LEVEL = DEBUG a initmssql.ora quindi avviare/riavviare il listener Oracle®. Se il log directory non esiste, crearla. Ad esempio:
    mkdir log
    chmod +w log