sql >> Databasteknik >  >> RDS >> Oracle

Ansluta Oracle till SQL Server över en säker anslutning

SQL Server ODBC-drivrutinen gör att du kan ansluta Oracle på Linux- och UNIX-plattformar till SQL Server eller SQL Azure. Om du bestämmer dig för att kryptera nätverksanslutningen från dina klientapplikationer till SQL Server, eller om du använder SQL Azure, måste du använda TLS-versionen av drivrutinen, som ingår i SQL Server ODBC-drivrutinsdistributionen.

Om du inte använder TLS-versionen av SQL Server ODBC-drivrutinen för att ansluta till en SQL Server-instans som har konfigurerats för att begära en krypterad anslutning, får du det här felet:

Client unable to establish connection: SSL requested but not supported

Om du redan använder Easysoft SQL Server ODBC-drivrutinen med Oracle:

  1. I SQL Server-datakällan som pekas på av HS_FDS_CONNECT_INFO i ditt initSID.ora , gör följande ändringar:
    1. Ändra Driver från:
      Driver = Easysoft ODBC-SQL Server

      till:

      Driver = Easysoft ODBC-SQL Server SSL
    2. Lägg till dessa rader:
      Encrypt = Yes
      TrustServerCertificate = Yes
  2. Om du pekar på drivrutinsbiblioteket istället för Driver Manager-biblioteket i initSID.ora , ändra HS_FDS_SHAREABLE_NAME värde till:
    install_dir/easysoft/sqlserver/lib/libessqlsrv_ssl.so
  3. Starta om Oracle-lyssnaren.

Om du är en ny användare:

  1. Installera och licensiera SQL Server ODBC-drivrutinen på maskinen där Oracle är installerat.

    För installationsinstruktioner, se dokumentationen för ODBC-drivrutinen.

    Obs Du behöver unixODBC Driver Manager installerad på din maskin. Easysoft-distributionen inkluderar en version av unixODBC Driver Manager som Easysoft SQL Server ODBC-drivrutinen har testats med. Easysofts drivrutinsinstallationsprogram ger dig möjlighet att installera unixODBC.

  2. Skapa en ODBC-datakälla i /etc/odbc.ini som ansluter till SQL Server-databasen du vill komma åt från Oracle®. Till exempel:
    [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. Använd isql för att testa den nya datakällan. Till exempel:
    cd /usr/local/easysoft/unixODBC/bin
    ./isql.sh -v SQLSERVER_SAMPLE
    

    Vid prompten skriver du "hjälp" för att visa en lista med tabeller. För att avsluta, tryck på retur i en tom uppmaningsrad.

    Om du inte kan ansluta, se den här artikeln för hjälp.

  4. Skapa en DG4ODBC init-fil. För att göra detta, ändra till hs/admin underkatalog. Till exempel:
    cd $ORACLE_HOME/product/11.2.0/xe/hs/admin
    

    Skapa en kopia av filen initdg4odbc.ora . Namnge den nya filen initmssql.ora .

  5. Se till att dessa parametrar och värden finns i din init-fil:
    HS_FDS_CONNECT_INFO = var>my_mssql_odbc_dsn
    

    Ersätt my_mssql_odbc_dsn med namnet på en SQL Server ODBC-drivrutinsdatakälla som ansluter till mål-SQL Server-instansen. Till exempel

    HS_FDS_CONNECT_INFO = "SQLSERVER_SAMPLE"
    
  6. Kommentera raden som möjliggör DG4ODBC-spårning. Till exempel:
    #HS_FDS_TRACE_LEVEL = <trace_level>
    
  7. Lägg till en post i listener.ora som skapar en SID_NAME för DG4ODBC. Till exempel:
    SID_LIST_LISTENER =
     (SID_LIST =
       (SID_DESC=
         (SID_NAME=mssql)
         (ORACLE_HOME=$ORACLE_HOME)
         (PROGRAM=dg4odbc)
       )
     )
    
  8. Lägg till en DG4ODBC-post i tnsnames.ora som anger SID_NAME som skapades i föregående steg. Till exempel:
    MSSQL =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = oracle_host)(PORT = 1521))
        (CONNECT_DATA =
          (SID = mssql)
        )
        (HS = OK)
      )
    

    Ersätt oracle_host med värdnamnet för din Oracle®-maskin.

  9. Starta (eller starta om) Oracle® Listener. Till exempel:
    lsnrctl stop
    lsnrctl start
    
  10. Anslut till din Oracle®-databas i SQL*Plus.
  11. Skapa en databaslänk för SQL Server-målinstansen i SQL*Plus. Till exempel:
    CREATE PUBLIC DATABASE LINK mssqllink CONNECT TO
    "my_sqlserver_user" IDENTIFIED by "my_password" USING 'mssql';
    SELECT * from suppliers@mssqllink
    
Anteckningar
  • Om du har problem med att ansluta till SQL Server från Oracle®, aktivera DG4ODBC-spårning och kontrollera spårningsfilerna som skrivits till hs/log katalog. För att aktivera DG4ODBC-spårning, lägg till raden HS_FDS_TRACE_LEVEL = DEBUG till initmssql.ora och starta/starta om Oracle®-lyssnaren. Om log katalogen finns inte, skapa den. Till exempel:
    mkdir log
    chmod +w log
    

  1. Laravel Migration Error:Syntaxfel eller åtkomstöverträdelse:1071 Angiven nyckel var för lång; max nyckellängd är 767 byte

  2. Följ med mig på PAUG Database Designer Conference

  3. Skapa en Postgres-databas med python

  4. Hur man hittar antalet dagar mellan två datum i MySQL