Oracle Autonomous Data Warehouse on Cloud

加密網路流量

最佳做法是加密 Looker 應用程式與資料庫之間的網路流量。請考慮使用「啟用安全資料庫存取權」說明文件頁面所述的其中一個選項。

設定連線的 Looker 主機

所有 Oracle ADWC 連線都必須使用 SSL 和憑證驗證。如要讓 Looker 連線至 Oracle ADWC 執行個體,請務必下載 Oracle Wallet 檔案,並安裝在 Looker 伺服器上。如果您是客戶代管的 Looker 使用者,則需要有權存取 Looker 伺服器的系統管理員才能執行這項操作。如果您是 Looker 代管使用者,請與 Looker 支援團隊聯絡。

如要在 Looker 伺服器上安裝 Oracle 錢包,請按照下列步驟操作:

  1. 將 Oracle 錢包下載本機電腦。您會看到名為 Wallet_databasename.zip 的 ZIP 檔案。

  2. 在 Looker 伺服器上,建立用於存放錢包 ZIP 檔案的目錄:

    mkdir /home/looker/looker/credentials
    
  3. 將錢包 ZIP 檔案從本機電腦複製到 Looker 伺服器。這個範例使用 scp,並將檔案放在 /home/looker/looker/credentials 中:

    scp Wallet_databasename.zip username@remotehost:/home/looker/looker/credentials
    
  4. 解壓縮錢包 ZIP 檔案。本範例使用 unzip 指令:

    cd /home/looker/looker/credentials
    unzip Wallet_databasename.zip
    
  5. 使用 ls 指令驗證錢包內容。您應該會看到下列檔案:

     ls
    
     cwallet.sso  keystore.jks      sqlnet.ora    truststore.jks
     ewallet.p12  ojdbc.properties  tnsnames.ora
    

    Looker 會使用 Oracle Wallet 和 JDBC 精簡型驅動程式 18.3 連線至 Oracle ADWC。為此,您需要資料庫的 Oracle ADWC 服務層級透明網路基底 (TNS) 別名,以及 Oracle 錢包檔案的路徑。

  6. 如要取得資料庫的 TNS 別名,請執行下列指令:

    cat tnsnames.ora
    

    系統會提供三個 TNS 別名供您選擇:dbname_highdbname_mediumdbname_low。這些別名對應不同的服務等級。這個檔案包含通訊協定、主機、通訊埠、服務名稱和 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 可以查看所有資料表

如果未先在 Oracle 中收集統計資料,Looker 可能無法識別資料表 (尤其是空白資料表)。如果需要的資料表未顯示在產生的 LookML 或 SQL Runner 中,請執行下列指令:

  EXEC DBMS_STATS.GATHER_DATABASE_STATS;

如需其他方法,請參閱 Oracle 說明文件。

設定主要資料庫物件

Oracle DBA 必須在 Oracle 上設定下列物件和權限。下列指令會將 LOOKER_SESSIONLOOKER_SQL 建立為 V$SESSIONV$SQL 的同義字。

以根使用者身分執行下列指令,即可完成這項設定。這些範例假設 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=&apos;LOOKER&apos;;

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=&apos;LOOKER&apos;;

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 前置字元可能是 SYSDBAADMIN,或不需要。

設定永久衍生資料表

如要啟用永久衍生資料表,請授予 Looker 使用者 UNLIMITED TABLESPACECREATE 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,
                   &apos;ALTER SYSTEM KILL SESSION &apos;&apos;&apos;
                   || p_sid || &apos;,&apos; || p_serial# || &apos;&apos;&apos;&apos;,
                   dbms_sql.native);
    ignore := dbms_sql.execute(cursor_name);
  ELSE
    raise_application_error(-20001,
                            &apos;You do not own session &apos;&apos;&apos; ||
                            p_sid || &apos;,&apos; || p_serial# ||
                            &apos;&apos;&apos;&apos;);
  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 前置字元可能是 SYSDBAADMIN,或不需要。

建立 Looker 資料庫連線

請按照下列步驟,在 Looker 中建立與資料庫的連線:

  1. 在 Looker 的「管理」部分中,選取「連線」,然後按一下「新增連線」
  2. 填寫連線詳細資料。在這些設定中,有絕大部分都是多數資料庫方言的常用設定。詳情請參閱「將 Looker 連線至資料庫」說明文件頁面。下列設定適用於 Oracle ADWC:

    • 方言Oracle ADWC
    • 使用 TNS:啟用透明網路基質 (TNS) 連線。
    • 主機:主機名稱或 TNS 別名。在本範例中,dbname_medium
    • 通訊埠:保留預設值,Looker 會從 tnsnames.ora 檔案中找出通訊埠。
    • 服務名稱:留空,Looker 會從 tnsnames.ora 檔案中找出服務名稱。
    • 使用者名稱:資料庫使用者名稱,或啟用 PDT 時的暫存資料庫
    • 「Password」(密碼):資料庫使用者密碼。
    • 啟用 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。
  3. 如要確認連線是否成功,請按一下「測試」。如需疑難排解資訊,請參閱「測試資料庫連線」說明文件頁面。按一下「測試」時,Looker 會建構類似以下的 JDBC 字串:

    jdbc:oracle:thin:@dbname_medium?TNS_ADMIN=/home/looker/looker/credentials

  4. 如要儲存這些設定,請按一下「連線」

功能支援

如要讓 Looker 支援某些功能,資料庫方言也必須支援這些功能。

自 Looker 25.10 起,Oracle ADWC 支援下列功能:

功能 是否支援?
支援級別
整合
Looker (Google Cloud Core)
對稱式匯總函式
衍生資料表
永久 SQL 衍生資料表
永久原生衍生資料表
穩定版檢視畫面
終止查詢
以 SQL 為基礎的樞紐
時區
SSL
小計
JDBC 其他參數
區分大小寫
位置類型
名單類型
百分位數
不重複值的百分位數
SQL Runner 顯示程序
SQL Runner 說明資料表
SQL Runner 顯示索引
SQL Runner 選取 10
SQL Runner 計數
SQL 說明
OAuth 2.0 憑證
背景資訊註解
連線集區
HLL 草圖
匯總知名度
增量 PDT
毫秒
微秒
具體化檢視表
與前一段時期相比的指標
不重複值的概略計數