sql >> データベース >  >> RDS >> Oracle

安全な接続を介したOracleのSQLServerへの接続

    SQL Server ODBCドライバーを使用すると、LinuxおよびUNIXプラットフォーム上のOracleをSQLServerまたはSQLAzureに接続できます。クライアントアプリケーションからSQLServerへのネットワーク接続を暗号化する場合、またはSQL Azureを使用している場合は、SQLServerODBCドライバーディストリビューションに含まれているTLSバージョンのドライバーを使用する必要があります。

    TLSバージョンのSQLServerODBCドライバーを使用して、暗号化された接続を要求するように構成されたSQL Serverインスタンスに接続しない場合、次のエラーが発生します。

    Client unable to establish connection: SSL requested but not supported

    すでにOracleでEasysoftSQLServer ODBCドライバーを使用している場合:

    1. HS_FDS_CONNECT_INFOが指すSQLServerデータソース内 initSID.ora 、次の変更を行います。
      1. Driverを変更します 差出人:
        Driver = Easysoft ODBC-SQL Server

        宛先:

        Driver = Easysoft ODBC-SQL Server SSL
      2. 次の行を追加します:
        Encrypt = Yes
        TrustServerCertificate = Yes
    2. initSID.oraHS_FDS_SHAREABLE_NAMEを変更します 値:
      install_dir/easysoft/sqlserver/lib/libessqlsrv_ssl.so
    3. Oracleリスナーを再起動します。

    新規ユーザーの場合:

    1. OracleがインストールされているマシンにSQLServerODBCドライバーをインストールしてライセンスを取得します。

      インストール手順については、ODBCドライバーのドキュメントを参照してください。

      マシンにunixODBCDriverManagerがインストールされている必要があります。 Easysoftディストリビューションには、Easysoft SQLServerODBCドライバーがテストされたバージョンのunixODBCドライバーマネージャーが含まれています。 Easysoftドライバセットアッププログラムには、unixODBCをインストールするオプションがあります。

    2. Oracle®からアクセスするSQLServerデータベースに接続するODBCデータソースを/etc/odbc.iniに作成します。次に例を示します。
      [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. isqlを使用して新しいデータソースをテストします。例:
      cd /usr/local/easysoft/unixODBC/bin
      ./isql.sh -v SQLSERVER_SAMPLE
      

      プロンプトで「help」と入力して、テーブルのリストを表示します。終了するには、空のプロンプト行でReturnキーを押します。

      接続できない場合は、この記事を参照してください。

    4. DG4ODBC初期化ファイルを作成します。これを行うには、hs/adminに変更します サブディレクトリ。例:
      cd $ORACLE_HOME/product/11.2.0/xe/hs/admin
      

      ファイルinitdg4odbc.oraのコピーを作成します 。新しいファイルにinitmssql.oraという名前を付けます 。

    5. 次のパラメータと値がinitファイルに存在することを確認してください:
      HS_FDS_CONNECT_INFO = var>my_mssql_odbc_dsn
      

      my_mssql_odbc_dsnを置き換えます ターゲットSQLServerインスタンスに接続するSQLServerODBCドライバーデータソースの名前を使用します。例

      HS_FDS_CONNECT_INFO = "SQLSERVER_SAMPLE"
      
    6. DG4ODBCトレースを有効にする行をコメントアウトします。例:
      #HS_FDS_TRACE_LEVEL = <trace_level>
      
    7. listener.oraにエントリを追加します これにより、DG4ODBCのSID_NAMEが作成されます。例:
      SID_LIST_LISTENER =
       (SID_LIST =
         (SID_DESC=
           (SID_NAME=mssql)
           (ORACLE_HOME=$ORACLE_HOME)
           (PROGRAM=dg4odbc)
         )
       )
      
    8. DG4ODBCエントリをtnsnames.oraに追加します これは、前の手順で作成したSID_NAMEを指定します。例:
      MSSQL =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = oracle_host)(PORT = 1521))
          (CONNECT_DATA =
            (SID = mssql)
          )
          (HS = OK)
        )
      

      oracle_hostを置き換えます Oracle®マシンのホスト名を使用します。

    9. Oracle®リスナーを起動(または再起動)します。例:
      lsnrctl stop
      lsnrctl start
      
    10. SQL*PlusでOracle®データベースに接続します。
    11. SQL * Plusで、ターゲットSQLServerインスタンスのデータベースリンクを作成します。例:
      CREATE PUBLIC DATABASE LINK mssqllink CONNECT TO
      "my_sqlserver_user" IDENTIFIED by "my_password" USING 'mssql';
      SELECT * from suppliers@mssqllink
      
    メモ
    • Oracle®からSQLServerへの接続に問題がある場合は、DG4ODBCトレースを有効にして、hs/logに書き込まれたトレースファイルを確認してください。 ディレクトリ。 DG4ODBCトレースを有効にするには、HS_FDS_TRACE_LEVEL = DEBUGという行を追加します。 initmssql.oraへ 次に、Oracle®リスナーを起動/再起動します。 logの場合 ディレクトリが存在しません。作成してください。例:
      mkdir log
      chmod +w log
      

    1. 可変列名を使用した動的更新ステートメント

    2. MySQLで小文字を大文字に変換する方法

    3. Oracleのテーブルから列名を取得するにはどうすればよいですか?

    4. Oracleで日付をフォーマットする方法