ネットワークトラフィックの暗号化
Looker アプリケーションとデータベース間のネットワーク トラフィックを暗号化することをおすすめします。セキュアなデータベースアクセスを可能にするドキュメント ページに記載されているオプションのいずれかを検討してください。
接続用の Looker ホストの設定
Oracle ADWC 接続にはすべて、SSL と証明書の認証が必要です。Looker を Oracle ADWC インスタンスに接続するには、Oracle ウォレット ファイルをダウンロードし、Looker サーバーにインストールする必要があります。お客様がセルフホスト型 Looker のユーザーである場合は、この操作を行うための Looker サーバーへのアクセス権を有するシステム管理者が必要になります。Looker でホストされているユーザーである場合は、Looker のサポートまでお問い合わせください。
Oracle ウォレットを Looker サーバーにインストールするには:
ローカルのパソコンに Oracle ウォレットをダウンロードします。
Wallet_databasename.zip
のような名前の zip ファイルが作成されます。Looker サーバー上で、ウォレットの zip ファイルを格納するディレクトリを作成します。
mkdir /home/looker/looker/credentials
ウォレットの zip ファイルをローカルのパソコンから Looker サーバーにコピーします。この例では
scp
を使用し、ファイルを/home/looker/looker/credentials
に配置します。scp Wallet_databasename.zip username@remotehost:/home/looker/looker/credentials
ウォレットの zip ファイルを解凍します。この例では、
unzip
コマンドを使用します。cd /home/looker/looker/credentials unzip Wallet_databasename.zip
ls
コマンドを使用してウォレットの内容を確認します。必要なファイルは次のとおりです。ls cwallet.sso keystore.jks sqlnet.ora truststore.jks ewallet.p12 ojdbc.properties tnsnames.ora
Looker は、JDBC Thin Driver 18.3 で Oracle ウォレットを使用して Oracle ADWC に接続します。これには、データベースの Oracle ADWC サービスレベルの Transparent Network Substrate(TNS)エイリアスと、Oracle ウォレット ファイルへの PATH が必要です。
データベースの TNS エイリアスを取得するには、次のコマンドを実行します。
cat tnsnames.ora
選択できる TNS エイリアスは
dbname_high
、dbname_medium
、dbname_low
の 3 つです。これらのエイリアスは、さまざまなレベルのサービスに対応しています。このファイルには、プロトコル、ホスト、ポート、サービス名、SSL 情報が含まれています。この例では、dbname_medium
を使用します。
Looker ユーザーの作成
まず、指定された Looker ユーザーを作成します。
-- connect / as sysdba;
CREATE USER LOOKER IDENTIFIED BY <password>
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP;
次に、新しい Looker ユーザーがセッションを作成できるようにします。
GRANT CREATE SESSION TO LOOKER;
最後に、Looker からアクセスする予定のデータテーブルに対する適切な SELECT
権限を Looker ユーザーに付与します。今後その他のテーブルにアクセスする必要がある場合は、これらの新しいテーブルにも SELECT
を付与する必要があります。
GRANT SELECT ON -- <all tables that will be used by looker>;
Looker がすべてのテーブルを認識できるようにする
Looker は、最初に Oracle で統計情報を収集しなければ、テーブル(特に空のテーブル)を識別できない場合があります。生成された LookML または SQL Runner に必要なテーブルが表示されない場合は、次のコマンドを実行します。
EXEC DBMS_STATS.GATHER_DATABASE_STATS;
代替の方法については、Oracle のドキュメントをご覧ください。
メイン データベース オブジェクトの設定
Oracle DBA は、Oracle で次のオブジェクトと権限を設定する必要があります。次のコマンドは、V$SESSION
と V$SQL
の類義語として LOOKER_SESSION
と LOOKER_SQL
を作成します。
root ユーザーとして次のコマンドを実行して、この設定を完了します。次の例は、Looker ユーザー名が LOOKER
であることを前提としています。
CREATE OR REPLACE VIEW LOOKER_SQL
AS
SELECT
sql.SQL_ID,
sql.SQL_TEXT
FROM
V$SQL sql,
v$session sess
WHERE
sess.SQL_ADDRESS = sql.ADDRESS AND
sess.username='LOOKER';
CREATE OR REPLACE SYNONYM LOOKER.LOOKER_SQL FOR LOOKER_SQL;
GRANT SELECT ON LOOKER.LOOKER_SQL TO LOOKER;
-- Pay special attention to the comments:
-- the following view will be different for clustered Oracle deployments
CREATE OR REPLACE VIEW LOOKER_SESSION
AS
SELECT
SID,
USERNAME,
TYPE,
STATUS,
SQL_ID,
-- If using a single node Oracle ADWC deployment
"SERIAL#",
-- If using a clustered Oracle ADWC deployment
(SERIAL# || ',' || INST_ID) AS "SERIAL#",
AUDSID
-- If using a single node Oracle ADWC deployment
FROM V$SESSION
-- If using a clustered Oracle ADWC deployment
FROM GV$SESSION
WHERE
USERNAME='LOOKER';
CREATE OR REPLACE SYNONYM LOOKER.LOOKER_SESSION FOR LOOKER_SESSION;
GRANT SELECT ON LOOKER.LOOKER_SESSION TO LOOKER;
対称集計の設定
Oracle DBA は、LOOKER_HASH
関数を設定して対称集計を有効にする必要があります。LOOKER_HASH
関数は、Oracle の dbms_crypto.hash
関数の類義語です。DBA は関連する類義語と権限も作成する必要があります。次の例は、Looker ユーザー名が LOOKER
であることを前提としています。
CREATE OR REPLACE FUNCTION LOOKER_HASH(bytes raw, prec number)
RETURN raw AS
BEGIN
return(dbms_crypto.HASH(bytes, prec));
END;
CREATE OR REPLACE SYNONYM LOOKER.LOOKER_HASH FOR LOOKER_HASH;
GRANT EXECUTE ON LOOKER.LOOKER_HASH TO LOOKER;
GRANT EXECUTE ON SYS.LOOKER_HASH TO LOOKER;
Oracle データベースの構成により、
SYS
接頭辞はSYSDBA
、ADMIN
、または不要になります。
永続的な派生テーブルの設定
永続的な派生テーブルを有効にするには、Looker ユーザーに UNLIMITED TABLESPACE
権限と CREATE TABLE
権限を付与します。次のコマンドは、Looker ユーザー名が LOOKER
であることを前提としています。
GRANT UNLIMITED TABLESPACE TO LOOKER;
GRANT CREATE TABLE TO LOOKER;
クエリの強制終了の設定
クエリの強制終了を設定するには、Oracle DBA が LOOKER_KILL_QUERY
プロシージャを ALTER SYSTEM KILL SESSION
の同義語として作成する必要があります。これを行うには、次のコマンドを実行します。
CREATE OR REPLACE PROCEDURE LOOKER_KILL_QUERY(p_sid in varchar2,
p_serial# in varchar2)
IS
cursor_name pls_integer default dbms_sql.open_cursor;
ignore pls_integer;
BEGIN
SELECT
COUNT(*) INTO IGNORE
-- If using a single node Oracle ADWC deployment
FROM V$SESSION
-- If using a clustered Oracle ADWC deployment
FROM GV$SESSION
WHERE
username = USER
AND sid = p_sid
-- If using a single node Oracle ADWC deployment
AND serial# = p_serial#;
-- If using a clustered Oracle ADWC deployment
AND (SERIAL# || ',' || INST_ID) = p_serial#;
IF (ignore = 1)
THEN
dbms_sql.parse(cursor_name,
'ALTER SYSTEM KILL SESSION '''
|| p_sid || ',' || p_serial# || '''',
dbms_sql.native);
ignore := dbms_sql.execute(cursor_name);
ELSE
raise_application_error(-20001,
'You do not own session ''' ||
p_sid || ',' || p_serial# ||
'''');
END IF;
END;
DBA は、以下の関連する次のコマンドも実行する必要があります。
CREATE OR REPLACE SYNONYM LOOKER.LOOKER_KILL_QUERY FOR SYS.LOOKER_KILL_QUERY;
GRANT EXECUTE ON SYS.LOOKER_KILL_QUERY TO LOOKER;
Oracle データベースの構成により、
SYS
接頭辞はSYSDBA
、ADMIN
、または不要になります。
データベースへの Looker 接続の作成
Looker からデータベースへの接続を作成する手順は次のとおりです。
- Looker の [管理者] セクションで [接続] を選択し、[新しい接続] をクリックします。
接続の詳細を入力します。設定の大部分は、ほとんどのデータベース言語に共通するものです。詳細については、Looker をデータベースに接続するのドキュメント ページをご覧ください。以下は、Oracle ADWC に固有の設定です。
- 言語: Oracle ADWC。
- TNS を使用する: 透過ネットワーク サブストレート(TNS)接続を有効にします。
- ホスト: ホスト名または TNS エイリアス。この例の場合、
dbname_medium
です。 - ポート: デフォルトのままにします。Looker が
tnsnames.ora
ファイルからポートを探します。 - サービス名: 空白のままにします。Looker がサービス名を
tnsnames.ora
ファイルから探します。 - ユーザー名: データベースのユーザー名。または PDT が有効になっている場合は 一時データベース。
- パスワード: データベース ユーザーのパスワード。
- PDT を有効にする: 有効にするには、この切り替えボタンを使用して永続的な派生テーブルを有効にします。PDT が有効になると、追加の PDT 設定と [PDT オーバーライド]が [接続] ウィンドウに表示されます。
- 一時的なデータベース: Oracle ではユーザーがスキーマであるため、データベース ユーザーの名前として指定する必要があります。この例では、一時的なスキーマ値
LOOKER
を使用します。 - その他の JDBC パラメータ: Looker サーバー上の Oracle ウォレットへの PATH。この例では
/home/looker/looker/credentials
です。 - Looker がホストする従来のデプロイの場合、この値は
/home/lookerops/looker/credentials
です。 - 次世代ホスティングで Looker がホストするデプロイの場合、この値は
/app/credentials
です。 - SSL と SSL の検証: これらのフィールドは無視できます。Looker では、常に Oracle ADWC で SSL が使用されます。
接続が成功したことを確認するには、[テスト] をクリックします。トラブルシューティング情報については、データベース接続のテストのドキュメント ページをご覧ください。 [テスト] をクリックすると、Looker は次のように JDBC 文字列を作成します。
jdbc:oracle:thin:@dbname_medium?TNS_ADMIN=/home/looker/looker/credentials
これらの設定を保存するには、[接続] をクリックします。
機能のサポート
一部の機能については、Looker でサポートするには、データベース言語が同じ機能に対応している必要があります。
Oracle ADWC では、Looker 24.16 の時点で、次の機能がサポートされています。
機能 | サポート対象 |
---|---|
サポート レベル | 統合 |
Looker(Google Cloud コア) | いいえ |
対称集計 | はい |
派生テーブル | はい |
永続的な SQL 派生テーブル | はい |
永続的なネイティブ派生テーブル | はい |
安定したビュー | いいえ |
クエリの強制終了 | はい |
SQL ベースのピボット | はい |
タイムゾーン | はい |
SSL | はい |
Subtotals | はい |
JDBC の追加パラメータ | いいえ |
大文字と小文字を区別 | はい |
ロケーション タイプ | はい |
リストのタイプ | はい |
パーセンタイル | はい |
個別のパーセンタイル | いいえ |
SQL Runner の表示プロセス | はい |
SQL Runner の説明テーブル | はい |
SQL Runner 表示インデックス | いいえ |
SQL Runner Select 10 | はい |
SQL ランナーの数 | はい |
SQL の説明 | いいえ |
Oauth 認証情報 | いいえ |
コンテキスト コメント | はい |
接続プーリング | いいえ |
HLL スケッチ | いいえ |
集計認識 | はい |
増分PDT | いいえ |
ミリ秒 | はい |
マイクロ秒 | はい |
マテリアライズド ビュー | いいえ |
Approximate Count Distinct | いいえ |