5.6 問合せサーバーへの接続

問合せサーバーは、Kerberosとパスワード・ベースの両方のデータベース認証をサポートしています。

5.6.1 問合せサーバーへの接続について

ユーザーは、問合せサーバー内のBDSQLUSRというプラガブル・データベース(PDB)に接続します。クラスタがセキュアでないかセキュアであるかに応じて、複数の接続方法があります。

セキュアでないクラスタでは、ユーザーはデータベースのユーザー名/パスワードを使用して接続できます。セキュアなクラスタでは、ユーザーはKerberosプリンシパルまたは通常のデータベースのユーザー/パスワード(あるいはその両方)を使用してデータベースに接続できます。

セキュアなクラスタとセキュアでないクラスタのどちらでも、データベース・ユーザーはDBMS_BDSQS_ADMIN PL/SQLパッケージを使用して作成する必要があります。さらに、保護されていないクラスタでは、問合せサーバーにbdsqlという単一の事前構成済データベース・ユーザーがあり、そのパスワードは問合せサーバーのインストール時に設定されます。

デフォルトでは、問合せサーバーはTLS接続を使用するように構成されています。TLSで接続するには、最初にクライアント・ウォレットを問合せサーバーからクライアント・ノードにコピーする必要があります。TLSが無効になっている場合、クライアント・ウォレットは必要ありません。

5.6.2 TLS接続用のクライアント・ウォレットのコピー

インストール後、問合せサーバーはデフォルトでTLS接続用に構成されます。問合せサーバーには、クライアントがTLSを使用して接続するために必要なクライアント・ウォレットもあります。クライアント・ノードが問合せサーバーへのTLS接続を使用できるようになる前に、ウォレットをクライアント・ノードにコピーし、ファイルを変更し、環境変数を設定する必要があります。TLSが無効になっている場合、クライアント資格証明は必要ありません。

TLS接続用にクライアント・ウォレットを構成するには:

  1. TLSが有効になっていない場合は有効にします。
    1. ログイン資格証明を使用してCloudera Managerにログインします
    2. 使用可能なサービスのリストで、「Big Data SQL」リンクをクリックして、「Big Data SQL」詳細ページを表示します。
    3. 「Status Summary」セクションで、「Big Data SQL Query Server」リンクをクリックして、「Big Data SQL Query Server」詳細ページを表示します。
    4. 「Actions」ドロップダウンリストから、「Enable TLS」を選択します。
  2. ディレクトリ/opt/oracle/bigdatasql/bdsqs/wallets/clientにある問合せサーバーからクライアント・ノードに次のクライアント・ファイルをコピーします。
    • cwallet.sso
    • sqlnet.ora
    • tnsnames.ora
  3. クライアント・ノードで、ウォレット・ロケーションをクライアント・ウォレットを含むフォルダに設定して、sqlnet.oraファイルを編集します。
  4. クライアント側で、TNS_ADMINwallet/sqlnet.ora/tnsnames.oraの場所を指すように設定します。

5.6.3 セキュアでないHadoopクラスタへの接続

デフォルトでは、問合せサーバーにはbdsqlという単一の事前構成済ユーザーがあり、そのパスワードは問合せサーバーのインストール時に設定されます。

  1. ユーザーは、次のようにbdsqlユーザーを使用してBDSQLUSR PDBに接続できます。

    > sqlplus BDSQL/<bdsql_password>@BDSQLUSR 

    ノート:

    前述のコマンドで<bdsql_password>を、Oracle Big Data SQLのインストール時に管理者が指定した実際のBDSQLパスワードに置き換えてください。
  2. TLS対応接続用のクライアント・ウォレットを取得します。手順については、TLS接続用のクライアント・ウォレットのコピーを参照してください。

  3. 追加のデータベース・ユーザーを、DBMS_BDSQS_ADMINパッケージを使用して作成できます。DBMS_BDSQS_ADMIN PL/SQLパッケージを参照してください。

    たとえば、ユーザーbdsql_user1bdsql_user2bdsql_user3を作成するには、SYSとして接続し、次を使用できます。
    > alter session set container=BDSQLUSR; 
    > exec DBMS_BDSQS_ADMIN.ADD_DATABASE_USERS('bdsql_user1, bdsql_user2, bdsql_user3')

    管理接続を参照してください。

  4. ユーザーを作成したら、そのパスワードを設定してロックを解除する必要があります。次に例を示します。
    > alter user bdsql_user1 identified by "<user_password>" account unlock;

    ノート:

    DBMS_BDSQS_ADMINパッケージは、データベース・ユーザーを問合せサーバーで作成/削除するためにサポートされている唯一の方法です。CREATE USER文を使用してデータベース・ユーザーを作成しないでください。

ノート:

bdsqlユーザーは、セキュアな(Kerberos)クラスタでは無効になっています。

5.6.3.1 BDSQLユーザー・パスワードの変更

bdsqlユーザーのパスワードは、インストール時に設定されます。インストール後に、ALTER USERを使用してbdsqlユーザーのパスワードを変更できます。

ALTER USERを次のように使用して、パスワードを変更します。
> sqlplus bdsql/<old_password>@BDSQLUSR
> alter user bdsql identified by "<new_password>"

ノート:

<new_password>を新しいパスワードに置き換えてください。新しいパスワードは、必要なOracleセキュア・パスワード・ガイドラインに準拠している必要があります。新しいパスワードを選択する方法については、セキュアなパスワードの選択を参照してください。

5.6.4 Kerberos認証を使用したセキュアなHadoopクラスタへの接続

セキュアなクラスタでは、Kerberosプリンシパルに対応する外部で識別されたデータベース・ユーザーを使用して接続できます。問合せサーバーに接続する前に、kinitを使用してKerberosで認証する必要があります。

Kerberos認証を使用してセキュアなHadoopクラスタに接続するには:
  1. Kerberosチケットを取得します。
    たとえば、プリンシパルbdsql_user@MYCLUSTER.COMを使用して接続するには、次を使用できます。
    > kinit bdsql_user@MYCLUSTER.COM
    > sqlplus /@BDSQLUSR
  2. TLS対応接続用のクライアント・ウォレットを取得します。手順については、TLS接続用のクライアント・ウォレットのコピーを参照してください。
  3. 外部で識別されるデータベース・ユーザーとしてKerberosプリンシパルを追加します。

    外部で識別されるユーザーは、次のいずれかの方法で作成できます。

    • 問合せサーバーをセキュアなクラスタにインストールするときに、Big Data SQLインストーラはクラスタのキー配布センター(KDC)からすべてのプリンシパルを収集できます。プリンシパルごとに、外部で識別されるデータベース・ユーザーが問合せサーバーに自動的に作成されます。このインストール時の動作は、bds-config.json構成ファイルのsyncPrincipalsパラメータによって制御されます。インストーラ・ノードで次のコマンドを実行すると、インストール後に同じ操作を呼び出せます。
      jaguar sync_principals
    • DBMS_BDSQS_ADMIN PL/SQLパッケージを使用して、外部で識別されるユーザーを手動で作成することもできます。

      たとえば、プリンシパルbdsql_user1@MYCLUSTER.COMbdsql_user2@MYCLUSTER.COMおよびbdsql_user3@MYCLUSTER.COMのデータベース・ユーザーを作成するには、(SYSとして接続している場合)次を呼び出します。
      > alter session set container=BDSQLUSR;
      > exec DBMS_BDSQS_ADMIN.ADD_KERBEROS_PRINCIPALS(
        'bdsql_user1@MYCLUSTER.COM,
         bdsql_user2@MYCLUSTER.COM,
         bdsql_user3@MYCLUSTER.COM'); 
      

ノート:

DBMS_BDSQS_ADMINパッケージは、外部で識別されるユーザーを問合せサーバーで作成/削除するためにサポートされている唯一の方法です。外部で識別されるユーザーを、CREATE USER文を使用して作成しないでください。

5.6.5 パスワードベースのデータベース認証を使用したセキュアなHadoopクラスタへの接続

Kerberosプリンシパルを使用する以外に、データベース・ユーザーとしてセキュアなクラスタ上の問合せサーバーにパスワードを使用して接続することもできます。

  1. TLS対応接続用のクライアント・ウォレットを取得します。手順については、TLS接続用のクライアント・ウォレットのコピーを参照してください。

  2. クライアントのユーザー名およびパスワードを使用して問合せサーバーに接続します。

    たとえば、ユーザーbdsql_user1として接続するには、次を使用できます。
    > connect bdsql_user1/"<password>"@BDSQLUSR

5.6.6 管理接続

問合せサーバーは、OS認証によるローカル管理接続のみをサポートします。

SYSとして接続するには、問合せサーバー・ノードからOSユーザーoracleとして次を使用します。

> sqlplus / as sysdba 
DBMS_BDSQS_ADMINパッケージを使用するには、最初に次のコマンドを実行してBDSQLUSR PDBに切り替えます。
> alter session set container=BDSQLUSR; 

ノート:

SYS/SYSTEMユーザー・パスワードの変更は、問合せサーバーではサポートされていません。