加密網路流量
最佳做法是加密 Looker 應用程式與資料庫之間的網路流量。請考慮使用「啟用安全資料庫存取權」說明文件頁面所述的其中一個選項。
如要使用 SSL 加密,請參閱 Microsoft 說明文件。
設定伺服器驗證
Looker 需要 MSSQL 伺服器上的「SQL Server 驗證」。如果 MSSQL 伺服器僅設定為「Windows 整合式驗證」,請將伺服器設定變更為「Windows 整合式驗證和 SQL Server 驗證」。
如果伺服器設定不正確,Looker 就無法連線。這會顯示在 SQL Server 記錄訊息中,例如:「An attempt to log in using SQL authentication failed. 伺服器已設定為僅進行 Windows 驗證。
如需變更,請完成下列步驟:
- 在 SQL Server Management Studio 物件總管中,以滑鼠右鍵按一下伺服器,然後點選「內容」。
- 在「安全性」頁面的「伺服器驗證」下方,選取新的伺服器驗證模式,然後按一下「確定」。
- 在「SQL Server Management Studio」對話方塊中,按一下「確定」,確認需要重新啟動 SQL Server。
- 在「物件總管」中,以滑鼠右鍵按一下伺服器,然後點選「重新啟動」。如果 SQL Server 代理程式正在執行,也必須重新啟動。
詳情請參閱 Microsoft 說明文件。
建立 Looker 使用者
Looker 會使用 SQL Server 驗證機制向資料庫進行驗證。系統不支援使用網域帳戶。
如要建立帳戶,請執行下列指令。將 some_password_here
變更為安全且不重複的密碼:
CREATE LOGIN looker
WITH PASSWORD = 'some_password_here';
USE MyDatabase;
CREATE USER looker FOR LOGIN looker;
GO
授予 Looker 使用者從資料表 SELECT 的權限
如要查詢資料表或結構定義,Looker 必須具備 SELECT
權限。您可以透過多種方式指派 SELECT
權限:
如要將
SELECT
權限授予個別結構定義,請針對每個結構定義執行下列指令:GRANT SELECT on SCHEMA :: 'schema_name' to looker;
如要將
SELECT
權限授予個別資料表,請對每個資料表執行下列指令:GRANT SELECT on OBJECT :: 'schema_name'.'table_name' to looker;
如果是 MSSQL 2012 以上版本,您也可以使用下列指令,將
db_datareader
角色指派給 Looker 使用者:USE MyDatabase; ALTER ROLE db_datareader ADD MEMBER looker; GO
授予 Looker 使用者權限,可查看及停止執行查詢
Looker 必須獲得授權,才能偵測及停止執行查詢,這需要下列權限:
ALTER ANY CONNECTION
VIEW SERVER STATE
如要授予這些權限,請執行下列指令:
USE Master;
GRANT ALTER ANY CONNECTION TO looker;
GRANT VIEW SERVER STATE to looker;
GO
授予 Looker 使用者建立資料表的權限
如要授予 Looker 使用者建立 PDT 的權限,請執行下列指令:
USE MyDatabase;
GRANT CREATE TABLE to looker;
GO
設定臨時結構定義
如要建立 Looker 使用者擁有的結構定義,並授予 Looker 使用者必要權限,請執行下列指令:
CREATE SCHEMA looker_scratch AUTHORIZATION looker;
設定 Kerberos 驗證
如果您使用 Kerberos 驗證搭配 MSSQL 資料庫,請按照下列步驟設定 Looker,透過 Kerberos 連線。
設定 Kerberos 用戶端設定
首先,您必須確保 Looker 電腦上已安裝多項軟體,並存在多個檔案。
Kerberos 用戶端
執行 kinit
,確認 Looker 電腦已安裝 Kerberos 用戶端。如果未安裝 Kerberos 用戶端,請安裝 Kerberos 用戶端的二進位檔。
舉例來說,在 Redhat 或 CentOS 上,這會是下列項目:
sudo yum install krb5-workstation krb5-libs krb5-auth-dialog
Java 8
Java 8 必須安裝在 Looker 電腦上,以及 Looker 使用者的 PATH
和 JAVA_HOME
中。如有需要,請在本機的 looker
目錄中安裝。
Java Cryptography Extension
從這個 Oracle 下載頁面,下載並安裝 Java 8 的 Java Cryptography Extension (JCE)。
- 找出 Java 安裝的
jre/lib/security
目錄。 - 從這個目錄移除下列 JAR 檔案:
local_policy.jar
和US_export_policy.jar
。 - 將這兩個檔案替換為 JCE 無限制強度管轄區政策檔案下載內容中的 JAR 檔案。
您或許可以搭配安裝的 JCE 使用 Java 8 之前的版本,但我們不建議這麼做。
- 找出 Java 安裝的
更新
~looker/.bash_profile
中的JAVA_HOME
和PATH
,指向正確的 Java 安裝位置和source ~/.bash_profile
,或登出後重新登入。使用
java -version
驗證 Java 版本。使用
echo $JAVA_HOME
驗證JAVA_HOME
環境變數。
gss-jaas.conf
在 looker
目錄中建立 gss-jaas.conf
檔案,並加入以下內容:
com.sun.security.jgss.initiate {
com.sun.security.auth.module.Krb5LoginModule required
useTicketCache=true
doNotPrompt=true;
};
如有測試需要,可以將 debug=true
新增至這個檔案,如下所示:
com.sun.security.jgss.initiate {
com.sun.security.auth.module.Krb5LoginModule required
useTicketCache=true
doNotPrompt=true
debug=true;
};
krb5.conf
執行 Looker 的伺服器也應具備有效的 krb5.conf
檔案。根據預設,這個檔案位於 /etc/krb5.conf
。如果位於其他位置,則必須在環境中指出 (殼層環境中的 KRB5_CONFIG
)。
您可能需要從其他 Kerberos 用戶端電腦複製這項設定。
lookerstart.cfg
在 looker
目錄 (含有 looker
啟動指令碼的目錄) 中建立名為 lookerstart.cfg
的檔案,並加入下列幾行,指向 gss-jaas.conf
和 krb5.conf
檔案:
JAVAARGS="-Djava.security.auth.login.config=/path/to/gss-jaas.conf -Djavax.security.auth.useSubjectCredsOnly=false -Djava.security.krb5.conf=/etc/krb5.conf"
LOOKERARGS=""
如果 krb5.conf
檔案不在 /etc/krb5.conf
,也必須新增這個變數:
-Djava.security.krb5.conf=/path/to/krb5.conf
如要進行偵錯,請新增下列變數:
-Dsun.security.jgss.debug=true -Dsun.security.krb5.debug=true
然後使用 ./looker restart
重新啟動 Looker。
使用 Kerberos 進行驗證
使用者驗證
如果
krb5.conf
不在/etc/
中,請使用環境變數KRB5_CONFIG
指出其位置。執行
klist
指令,確認 Kerberos 票證快取中是否有有效票證。如果沒有票證,請執行
kinit username@REALM
或kinit username
建立票證。與 Looker 搭配使用的帳戶可能沒有使用者介面,因此您可以從 Kerberos 取得 keytab 檔案,儲存長期使用的憑證。使用
kinit -k -t looker_user.keytab username@REALM
等指令取得 Kerberos 票證。
自動更新票證
設定定期執行的 Cron 工作,在 Kerberos 票證快取中保留有效票證。執行頻率取決於叢集設定。klist
應顯示票證的到期時間。
建立 Looker 資料庫連線
請按照下列步驟,在 Looker 中建立與資料庫的連線:
- 在 Looker 的「管理」部分中,選取「連線」,然後按一下「新增連線」。
從「Dialect」(方言) 下拉式選單中,選取 Microsoft SQL Server 版本。
在「Remote Host」(遠端主機) 和「Port」(通訊埠) 中,輸入主機名稱和通訊埠 (預設通訊埠為 1433)。
如果需要指定 1433 以外的非預設通訊埠,且資料庫需要使用半形逗號而非半形冒號,您可以在連線設定中,於下方的「Additional JDBC parameters」(額外 JDBC 參數) 欄位新增
useCommaHostPortSeparator=true
,這樣就能在「Remote Host:Port」(遠端主機:通訊埠) 中使用半形逗號。例如:jdbc:sqlserver://hostname,1434
填寫其餘連線詳細資料。在這些設定中,有絕大部分都是多數資料庫方言的常用設定。詳情請參閱「將 Looker 連線至資料庫」說明文件頁面。
如要確認連線是否成功,請按一下「測試」。如需疑難排解資訊,請參閱「測試資料庫連線」說明文件頁面。
如要儲存這些設定,請按一下「連線」。
設定 Looker 連線
按照「將 Looker 連線至資料庫」說明文件頁面的指示,建立與 MSSQL 資料庫的連線。在「連線設定」頁面的「其他 JDBC 參數」部分,新增下列項目:
;integratedSecurity=true;authenticationScheme=JavaKerberos
部分網路設定了兩個 Kerberos 領域,一個用於 Windows Active Directory,另一個用於 Linux 和其他非 Windows 系統。在這種情況下,如果以 Linux 為主的 Realm 和 Active Directory Realm 設定為互相信任,就稱為「跨 Realm 驗證」。
如果您的網路使用跨領域驗證,就必須明確指定 MSSQL Server 的 Kerberos 主體。在「Additional JDBC parameters」(其他 JDBC 參數) 欄位中,新增下列項目:
;serverSpn=service_name/FQDN\:PORT@REALM
將 FQDN
和 PORT@REALM
替換為網路資訊。例如:
;serverSpn=MSSQLSvc/dbserver.internal.example.com:1433@AD.EXAMPLE.COM
此外,Looker 的「連線設定」頁面需要「使用者名稱」和「密碼」欄位中的項目,但這些項目並非 Kerberos 的必要項目。在這些欄位中輸入虛擬值。
測試連線,確認設定正確無誤。
功能支援
如要讓 Looker 支援某些功能,資料庫方言也必須支援這些功能。
自 Looker 25.10 起,Microsoft SQL Server 2008 以上版本支援下列功能:
功能 | 是否支援? |
---|---|
支援級別 | 整合 |
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 | 否 |
毫秒 | 是 |
微秒 | 是 |
具體化檢視表 | 否 |
與前一段時期相比的指標 | 否 |
不重複值的概略計數 | 否 |
自 Looker 25.10 起,Microsoft SQL Server 2016 支援下列功能:
功能 | 是否支援? |
---|---|
支援級別 | 支援 |
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 | 否 |
毫秒 | 是 |
微秒 | 是 |
具體化檢視表 | 否 |
與前一段時期相比的指標 | 否 |
不重複值的概略計數 | 否 |
自 Looker 25.10 起,Microsoft SQL Server 2017 以上版本支援下列功能:
功能 | 是否支援? |
---|---|
支援級別 | 支援 |
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 | 否 |
毫秒 | 是 |
微秒 | 是 |
具體化檢視表 | 否 |
與前一段時期相比的指標 | 否 |
不重複值的概略計數 | 否 |