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接続用にクライアント・ウォレットを構成するには:
- TLSが有効になっていない場合は有効にします。
- ログイン資格証明を使用してCloudera Managerにログインします
- 使用可能なサービスのリストで、「Big Data SQL」リンクをクリックして、「Big Data SQL」詳細ページを表示します。
- 「Status Summary」セクションで、「Big Data SQL Query Server」リンクをクリックして、「Big Data SQL Query Server」詳細ページを表示します。
- 「Actions」ドロップダウンリストから、「Enable TLS」を選択します。
- ディレクトリ
/opt/oracle/bigdatasql/bdsqs/wallets/client
にある問合せサーバーからクライアント・ノードに次のクライアント・ファイルをコピーします。cwallet.sso
sqlnet.ora
tnsnames.ora
- クライアント・ノードで、ウォレット・ロケーションをクライアント・ウォレットを含むフォルダに設定して、
sqlnet.ora
ファイルを編集します。 - クライアント側で、
TNS_ADMIN
をwallet/sqlnet.ora/tnsnames.ora
の場所を指すように設定します。
5.6.3 セキュアでないHadoopクラスタへの接続
デフォルトでは、問合せサーバーにはbdsql
という単一の事前構成済ユーザーがあり、そのパスワードは問合せサーバーのインストール時に設定されます。
-
ユーザーは、次のように
bdsql
ユーザーを使用してBDSQLUSR
PDBに接続できます。> sqlplus BDSQL/<bdsql_password>@BDSQLUSR
ノート:
前述のコマンドで<bdsql_password>
を、Oracle Big Data SQLのインストール時に管理者が指定した実際のBDSQL
パスワードに置き換えてください。 -
TLS対応接続用のクライアント・ウォレットを取得します。手順については、TLS接続用のクライアント・ウォレットのコピーを参照してください。
-
追加のデータベース・ユーザーを、
DBMS_BDSQS_ADMIN
パッケージを使用して作成できます。DBMS_BDSQS_ADMIN PL/SQLパッケージを参照してください。たとえば、ユーザーbdsql_user1
、bdsql_user2
、bdsql_user3
を作成するには、SYS
として接続し、次を使用できます。> alter session set container=BDSQLUSR; > exec DBMS_BDSQS_ADMIN.ADD_DATABASE_USERS('bdsql_user1, bdsql_user2, bdsql_user3')
管理接続を参照してください。
-
ユーザーを作成したら、そのパスワードを設定してロックを解除する必要があります。次に例を示します。
> 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チケットを取得します。
たとえば、プリンシパルbdsql_user@MYCLUSTER.COMを使用して接続するには、次を使用できます。
> kinit bdsql_user@MYCLUSTER.COM > sqlplus /@BDSQLUSR
- TLS対応接続用のクライアント・ウォレットを取得します。手順については、TLS接続用のクライアント・ウォレットのコピーを参照してください。
- 外部で識別されるデータベース・ユーザーとしてKerberosプリンシパルを追加します。
外部で識別されるユーザーは、次のいずれかの方法で作成できます。
-
問合せサーバーをセキュアなクラスタにインストールするときに、Big Data SQLインストーラはクラスタのキー配布センター(KDC)からすべてのプリンシパルを収集できます。プリンシパルごとに、外部で識別されるデータベース・ユーザーが問合せサーバーに自動的に作成されます。このインストール時の動作は、
bds-config.json
構成ファイルのsyncPrincipals
パラメータによって制御されます。インストーラ・ノードで次のコマンドを実行すると、インストール後に同じ操作を呼び出せます。jaguar sync_principals
-
DBMS_BDSQS_ADMIN PL/SQL
パッケージを使用して、外部で識別されるユーザーを手動で作成することもできます。たとえば、プリンシパルbdsql_user1@MYCLUSTER.COM
、bdsql_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プリンシパルを使用する以外に、データベース・ユーザーとしてセキュアなクラスタ上の問合せサーバーにパスワードを使用して接続することもできます。
-
TLS対応接続用のクライアント・ウォレットを取得します。手順については、TLS接続用のクライアント・ウォレットのコピーを参照してください。
-
クライアントのユーザー名およびパスワードを使用して問合せサーバーに接続します。
たとえば、ユーザーbdsql_user1
として接続するには、次を使用できます。> connect bdsql_user1/"<password>"@BDSQLUSR