Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Menghubungkan Oracle ke SQL Server melalui Koneksi Aman

Driver SQL Server ODBC memungkinkan Anda untuk menghubungkan Oracle di platform Linux dan UNIX ke SQL Server atau SQL Azure. Jika Anda memutuskan untuk mengenkripsi koneksi jaringan dari aplikasi klien Anda ke SQL Server, atau Anda menggunakan SQL Azure, Anda harus menggunakan driver versi TLS, yang disertakan dalam distribusi driver SQL Server ODBC.

Jika Anda tidak menggunakan versi TLS dari pengandar SQL Server ODBC untuk menyambung ke contoh SQL Server yang telah dikonfigurasi untuk meminta sambungan terenkripsi, Anda akan mendapatkan kesalahan ini:

Client unable to establish connection: SSL requested but not supported

Jika Anda sudah menggunakan driver ODBC Easysoft SQL Server dengan Oracle:

  1. Dalam sumber data SQL Server ditunjukkan oleh HS_FDS_CONNECT_INFO di initSID.ora , lakukan perubahan berikut:
    1. Ubah Driver dari:
      Driver = Easysoft ODBC-SQL Server

      ke:

      Driver = Easysoft ODBC-SQL Server SSL
    2. Tambahkan baris berikut:
      Encrypt = Yes
      TrustServerCertificate = Yes
  2. Jika Anda menunjuk ke perpustakaan driver dan bukan perpustakaan Driver Manager di initSID.ora , ubah HS_FDS_SHAREABLE_NAME nilai ke:
    install_dir/easysoft/sqlserver/lib/libessqlsrv_ssl.so
  3. Mulai ulang pendengar Oracle.

Jika Anda adalah pengguna baru:

  1. Instal dan lisensikan driver SQL Server ODBC pada mesin tempat Oracle diinstal.

    Untuk petunjuk penginstalan, lihat dokumentasi driver ODBC.

    Catatan Anda memerlukan Pengelola Driver unixODBC yang diinstal pada mesin Anda. Distribusi Easysoft mencakup versi Pengelola Driver unixODBC yang telah diuji dengan pengandar ODBC Easysoft SQL Server. Program pengaturan driver Easysoft memberi Anda opsi untuk menginstal unixODBC.

  2. Buat sumber data ODBC di /etc/odbc.ini yang terhubung ke database SQL Server yang ingin Anda akses dari Oracle®. Sebagai contoh:
    [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. Gunakan isql untuk menguji sumber data baru. Misalnya:
    cd /usr/local/easysoft/unixODBC/bin
    ./isql.sh -v SQLSERVER_SAMPLE
    

    Saat diminta, ketik "bantuan" untuk menampilkan daftar tabel. Untuk keluar, tekan kembali di baris prompt yang kosong.

    Jika Anda tidak dapat terhubung, lihat artikel ini untuk mendapatkan bantuan.

  4. Buat file init DG4ODBC. Untuk melakukannya, ubah ke hs/admin subdirektori. Misalnya:
    cd $ORACLE_HOME/product/11.2.0/xe/hs/admin
    

    Buat salinan file initdg4odbc.ora . Beri nama file baru initmssql.ora .

  5. Pastikan parameter dan nilai ini ada di file init Anda:
    HS_FDS_CONNECT_INFO = var>my_mssql_odbc_dsn
    

    Ganti my_mssql_odbc_dsn dengan nama sumber data pengandar SQL Server ODBC yang tersambung ke contoh SQL Server target. Misalnya

    HS_FDS_CONNECT_INFO = "SQLSERVER_SAMPLE"
    
  6. Komentar baris yang memungkinkan penelusuran DG4ODBC. Misalnya:
    #HS_FDS_TRACE_LEVEL = <trace_level>
    
  7. Tambahkan entri ke listener.ora yang membuat SID_NAME untuk DG4ODBC. Misalnya:
    SID_LIST_LISTENER =
     (SID_LIST =
       (SID_DESC=
         (SID_NAME=mssql)
         (ORACLE_HOME=$ORACLE_HOME)
         (PROGRAM=dg4odbc)
       )
     )
    
  8. Tambahkan entri DG4ODBC ke tnsnames.ora yang menentukan SID_NAME yang dibuat pada langkah sebelumnya. Misalnya:
    MSSQL =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = oracle_host)(PORT = 1521))
        (CONNECT_DATA =
          (SID = mssql)
        )
        (HS = OK)
      )
    

    Ganti Oracle_host dengan nama host mesin Oracle® Anda.

  9. Mulai (atau mulai ulang) Oracle® Listener. Misalnya:
    lsnrctl stop
    lsnrctl start
    
  10. Hubungkan ke database Oracle® Anda di SQL*Plus.
  11. Dalam SQL*Plus, buat link database untuk instance SQL Server target. Misalnya:
    CREATE PUBLIC DATABASE LINK mssqllink CONNECT TO
    "my_sqlserver_user" IDENTIFIED by "my_password" USING 'mssql';
    SELECT * from suppliers@mssqllink
    
Catatan
  • Jika Anda mengalami masalah saat menyambung ke SQL Server dari Oracle®, aktifkan penelusuran DG4ODBC dan periksa file penelusuran yang ditulis ke hs/log direktori. Untuk mengaktifkan pelacakan DG4ODBC, tambahkan baris HS_FDS_TRACE_LEVEL = DEBUG ke initmssql.ora lalu mulai / mulai ulang pendengar Oracle®. Jika log direktori tidak ada, buatlah. Misalnya:
    mkdir log
    chmod +w log
    

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Contoh Oracle Dynamic SQL untuk Menyisipkan Catatan Menggunakan DBMS_SQL

  2. Kesalahan Menambahkan Siaga

  3. Apakah Oracle memiliki variabel tabel yang setara dengan SQL Server?

  4. Prosedur UTL_FILE.FOPEN() tidak menerima jalur untuk direktori?

  5. Oracle INSERT menjadi dua tabel dalam satu query