sql >> Database >  >> RDS >> Oracle

Oracle verbinden met SQL Server via een beveiligde verbinding

Met het SQL Server ODBC-stuurprogramma kunt u Oracle op Linux- en UNIX-platforms verbinden met SQL Server of SQL Azure. Als u besluit om de netwerkverbinding van uw clienttoepassingen naar SQL Server te coderen, of als u SQL Azure gebruikt, moet u de TLS-versie van het stuurprogramma gebruiken, die is opgenomen in de SQL Server ODBC-stuurprogrammadistributie.

Als u de TLS-versie van het SQL Server ODBC-stuurprogramma niet gebruikt om verbinding te maken met een SQL Server-instantie die is geconfigureerd om een ​​versleutelde verbinding aan te vragen, krijgt u deze foutmelding:

Client unable to establish connection: SSL requested but not supported

Als u de Easysoft SQL Server ODBC-driver al met Oracle gebruikt:

  1. In de SQL Server-gegevensbron waarnaar wordt verwezen door HS_FDS_CONNECT_INFO in uw initSID.ora , breng de volgende wijzigingen aan:
    1. Wijzig het Driver van:
      Driver = Easysoft ODBC-SQL Server

      naar:

      Driver = Easysoft ODBC-SQL Server SSL
    2. Voeg deze regels toe:
      Encrypt = Yes
      TrustServerCertificate = Yes
  2. Als u verwijst naar de driverbibliotheek in plaats van de Driver Manager-bibliotheek in initSID.ora , verander de HS_FDS_SHAREABLE_NAME waarde toe aan:
    install_dir/easysoft/sqlserver/lib/libessqlsrv_ssl.so
  3. Herstart de Oracle-luisteraar.

Als u een nieuwe gebruiker bent:

  1. Installeer en licentieer het SQL Server ODBC-stuurprogramma op de computer waarop Oracle is geïnstalleerd.

    Zie de documentatie van het ODBC-stuurprogramma voor installatie-instructies.

    Opmerking U moet de unixODBC Driver Manager op uw computer hebben geïnstalleerd. De Easysoft-distributie bevat een versie van de unixODBC Driver Manager waarmee de Easysoft SQL Server ODBC-driver is getest. Het Easysoft driver setup programma geeft je de mogelijkheid om unixODBC te installeren.

  2. Maak een ODBC-gegevensbron in /etc/odbc.ini die verbinding maakt met de SQL Server-database waartoe u toegang wilt vanuit Oracle®. Bijvoorbeeld:
    [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. Gebruik isql om de nieuwe gegevensbron te testen. Bijvoorbeeld:
    cd /usr/local/easysoft/unixODBC/bin
    ./isql.sh -v SQLSERVER_SAMPLE
    

    Typ bij de prompt "help" om een ​​lijst met tabellen weer te geven. Druk op Return in een lege promptregel om af te sluiten.

    Als je geen verbinding kunt maken, raadpleeg dan dit artikel voor hulp.

  4. Maak een DG4ODBC init-bestand. Ga hiervoor naar de hs/admin submap. Bijvoorbeeld:
    cd $ORACLE_HOME/product/11.2.0/xe/hs/admin
    

    Maak een kopie van het bestand initdg4odbc.ora . Geef het nieuwe bestand de naam initmssql.ora .

  5. Zorg ervoor dat deze parameters en waarden aanwezig zijn in uw init-bestand:
    HS_FDS_CONNECT_INFO = var>my_mssql_odbc_dsn
    

    Vervang my_mssql_odbc_dsn met de naam van een SQL Server ODBC-stuurprogrammagegevensbron die verbinding maakt met het doel-SQL Server-exemplaar. Bijvoorbeeld

    HS_FDS_CONNECT_INFO = "SQLSERVER_SAMPLE"
    
  6. Reageer op de regel die DG4ODBC-tracering mogelijk maakt. Bijvoorbeeld:
    #HS_FDS_TRACE_LEVEL = <trace_level>
    
  7. Voeg een item toe aan listener.ora dat maakt een SID_NAME voor DG4ODBC. Bijvoorbeeld:
    SID_LIST_LISTENER =
     (SID_LIST =
       (SID_DESC=
         (SID_NAME=mssql)
         (ORACLE_HOME=$ORACLE_HOME)
         (PROGRAM=dg4odbc)
       )
     )
    
  8. Voeg een DG4ODBC-item toe aan tnsnames.ora die de SID_NAME specificeert die in de vorige stap is gemaakt. Bijvoorbeeld:
    MSSQL =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = oracle_host)(PORT = 1521))
        (CONNECT_DATA =
          (SID = mssql)
        )
        (HS = OK)
      )
    

    Vervang oracle_host met de hostnaam van uw Oracle®-machine.

  9. Start (of herstart) de Oracle® Listener. Bijvoorbeeld:
    lsnrctl stop
    lsnrctl start
    
  10. Maak verbinding met uw Oracle®-database in SQL*Plus.
  11. Maak in SQL*Plus een databasekoppeling voor de doelinstantie van SQL Server. Bijvoorbeeld:
    CREATE PUBLIC DATABASE LINK mssqllink CONNECT TO
    "my_sqlserver_user" IDENTIFIED by "my_password" USING 'mssql';
    SELECT * from suppliers@mssqllink
    
Opmerkingen
  • Als je problemen hebt om verbinding te maken met SQL Server vanuit Oracle®, schakel dan DG4ODBC-tracering in en controleer de traceerbestanden die zijn geschreven naar de hs/log map. Om DG4ODBC-tracering in te schakelen, voegt u de regel HS_FDS_TRACE_LEVEL = DEBUG toe naar initmssql.ora en start / herstart vervolgens de Oracle®-listener. Als de log directory bestaat niet, maak deze aan. Bijvoorbeeld:
    mkdir log
    chmod +w log
    

  1. Hoe een PDO-verbinding correct in te stellen

  2. SQL SERVER – Een truc om met dynamische SQL om te gaan om een ​​SQL-injectieaanval te voorkomen?

  3. datetime vs datetime2 in SQL Server:wat is het verschil?

  4. Omzeilen van fouten die niet overeenkomen met architectuur bij gebruik van Microsoft Access