加密網路流量
最佳做法是加密 Looker 應用程式與資料庫之間的網路流量。請考慮使用「啟用安全資料庫存取權」說明文件頁面所述的其中一個選項。
設定連線的 Looker 主機
所有 Oracle ADWC 連線都必須使用 SSL 和憑證驗證。如要讓 Looker 連線至 Oracle ADWC 執行個體,請務必下載 Oracle Wallet 檔案,並安裝在 Looker 伺服器上。如果您是客戶代管的 Looker 使用者,則需要有權存取 Looker 伺服器的系統管理員才能執行這項操作。如果您是 Looker 代管使用者,請與 Looker 支援團隊聯絡。
如要在 Looker 伺服器上安裝 Oracle 錢包,請按照下列步驟操作:
將 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 會使用 Oracle Wallet 和 JDBC 精簡型驅動程式 18.3 連線至 Oracle ADWC。為此,您需要資料庫的 Oracle ADWC 服務層級透明網路基底 (TNS) 別名,以及 Oracle 錢包檔案的路徑。
如要取得資料庫的 TNS 別名,請執行下列指令:
cat tnsnames.ora
系統會提供三個 TNS 別名供您選擇:
dbname_high
、dbname_medium
和dbname_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_SESSION
和 LOOKER_SQL
建立為 V$SESSION
和 V$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='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 時的暫存資料庫。
- 「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。
如要確認連線是否成功,請按一下「測試」。如需疑難排解資訊,請參閱「測試資料庫連線」說明文件頁面。按一下「測試」時,Looker 會建構類似以下的 JDBC 字串:
jdbc:oracle:thin:@dbname_medium?TNS_ADMIN=/home/looker/looker/credentials
如要儲存這些設定,請按一下「連線」。
功能支援
如要讓 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 | 否 |
毫秒 | 是 |
微秒 | 是 |
具體化檢視表 | 否 |
與前一段時期相比的指標 | 否 |
不重複值的概略計數 | 否 |