加密網路流量
最佳做法是加密 Looker 應用程式與資料庫之間的網路流量。請考慮使用「啟用安全資料庫存取權」說明文件頁面所述的其中一個選項。
如要使用 SSL 加密,請參閱 Oracle 說明文件。
建立 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 following 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 deployment
"SERIAL#",
-- If using a clustered Oracle deployment, like Oracle Real Application Clusters
(SERIAL# || ',' || INST_ID) AS "SERIAL#",
AUDSID
-- If using a single node Oracle deployment
FROM V$SESSION
-- If using a clustered Oracle deployment, like Oracle Real Application Clusters
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 部署項目或 Amazon RDS 部署項目設定查詢終止功能。
標準 Oracle 部署作業
如要在標準 Oracle 部署作業中設定查詢終止功能,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 deployment
FROM V$SESSION
-- If using a clustered Oracle deployment, like Oracle Real Application Clusters
FROM GV$SESSION
WHERE
username = USER
AND sid = p_sid
-- If using a single node Oracle deployment
AND serial# = p_serial#;
-- If using a clustered Oracle deployment, like Oracle Real Application Clusters
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
,或不需要。
Amazon RDS 部署作業
在 Amazon RDS Oracle 部署作業中,rdsadmin.rdsadmin_util.kill
程序用於終止查詢。如要使用這個程序,必須為 Looker 資料庫使用者指派 DBA
角色。
由於 DBA 是權限較高的資料庫角色,您可以考慮略過這個步驟,並放棄在 Looker 中終止查詢。
如要授予 Looker 資料庫使用者終止查詢的權限,請執行下列指令:
GRANT DBA TO LOOKER;
建立 Looker 資料庫連線
在 Looker 的「管理」部分中,選取「連線」,然後按一下「新增連線」。
填寫連線詳細資料。在這些設定中,有絕大部分都是多數資料庫方言的常用設定。詳情請參閱「將 Looker 連線至資料庫」說明文件頁面。下列設定適用於 Oracle:
- 名稱:指定連線名稱。您會在 LookML 專案中參照這個連線。
- 方言:Oracle。
- 使用 TNS:啟用透明網路基質 (TNS) 連線。
- 主機:主機名稱或 TNS 別名。
- 「Port」(通訊埠):資料庫通訊埠。
- 資料庫:資料庫名稱 (如果未使用 TNS)。
- 服務名稱:服務名稱 (如使用 TNS)。
- 使用者名稱:資料庫使用者名稱,或啟用 PDT 時的暫存資料庫。
- 「Password」(密碼):資料庫使用者密碼。
- 啟用 PDT:使用這個切換按鈕啟用永久衍生資料表。啟用 PDT 後,「連線」視窗會顯示其他 PDT 設定和「PDT 覆寫」部分。
- 暫存資料庫:在 Oracle 中,使用者就是結構定義,因此應指定為資料庫使用者的名稱。在本範例中,您會使用暫時結構定義值
LOOKER
。 - PDT 建構工具連線數量上限:指定此連線可並行建構 PDT 的數量。如果這個值設得太高,可能會對查詢時間造成負面影響。詳情請參閱「將 Looker 連線至資料庫」說明文件頁面。
- 其他 JDBC 參數:由於 Oracle 不支援其他 JDBC 參數,請將此欄位留空。
- 維護時間表:
cron
運算式,指出 Looker 應在何時檢查資料群組和永久衍生資料表。如要進一步瞭解這項設定,請參閱「維護時間表」說明文件。 - SSL:勾選這個選項即可使用 SSL 連線。
- 驗證 SSL:忽略此欄位。Oracle 會使用預設的 Java Truststore 驗證 SSL。
- 每個節點的連線數上限:一開始可以保留預設值。如要進一步瞭解這項設定,請參閱「將 Looker 連線至資料庫」說明頁面的「每個節點的連線數上限」一節。
- 連線集區逾時:一開始可以保留預設值。如要進一步瞭解這項設定,請參閱「將 Looker 連線至資料庫」說明頁面的「連線集區逾時」一節。
- SQL Runner 預先快取:如要讓 SQL Runner 不要預先載入資料表資訊,只在選取資料表時載入資訊,請取消勾選這個選項。如要進一步瞭解這項設定,請參閱「將 Looker 連線至資料庫」說明頁面的「SQL Runner 預先快取」一節。
- 資料庫時區:指定資料庫中使用的時區。如不想轉換時區,請將這個欄位留空。詳情請參閱「使用時區設定」說明文件頁面。
如要確認連線是否成功,請按一下「測試」。如需疑難排解資訊,請參閱「測試資料庫連線」說明文件頁面。
如要儲存這些設定,請按一下「連結」。 在 Looker 的「管理」部分中,選取「連線」,然後按一下「新增連線」。
功能支援
如要讓 Looker 支援某些功能,資料庫方言也必須支援這些功能。
自 Looker 25.10 起,Oracle 支援下列功能:
功能 | 是否支援? |
---|---|
支援級別 | 支援 |
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 | 否 |
毫秒 | 是 |
微秒 | 是 |
具體化檢視表 | 否 |
與前一段時期相比的指標 | 否 |
不重複值的概略計數 | 否 |