Looker 對 MSSQL 提供 整合等級支援。本頁麵包含將 Looker 連接到 MSSQL 的資訊。
加密網路流量
最佳做法是加密 Looker 應用程式與資料庫之間的網路流量。請考慮使用「啟用安全資料庫存取權」說明文件頁面中介紹的其中一個選項。
如果您對使用 SSL 加密感興趣,請參閱 Microsoft 文件。
配置伺服器身份驗證
Looker 需要在您的 MSSQL 伺服器上啟用「SQL Server 驗證」。如果您的 MSSQL 伺服器配置為僅“Windows 整合式驗證”,請將伺服器設定變更為“Windows 整合式驗證和 SQL Server 驗證”。
如果伺服器設定不正確,Looker 將無法連線。這將出現在 SQL Server 日誌訊息中,例如:「嘗試使用 SQL 驗證登入失敗。伺服器僅配置為支援 Windows 身份驗證。
如果需要進行此項更改,您可以完成以下步驟:
- 在 SQL Server Management Studio 物件資源管理器 中,以滑鼠右鍵按一下伺服器,然後按一下 屬性。
- 在安全頁面,在伺服器身份驗證選擇新的伺服器驗證模式,然後按一下好的。
- 在SQL Server Management Studio點選對話框好的確認需要重新啟動 SQL Server。
- 在 物件資源管理器 中,以滑鼠右鍵按一下您的伺服器,然後按一下 重新啟動。如果 SQL Server 代理程式正在執行,則也必須重新啟動它。
您可以在微軟文件中瞭解更多相關資訊。
建立 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 使用者從表中選擇資料的權限
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 或更高版本,您也可以使用以下命令為 Looker 使用者指派
db_datareader角色:USE MyDatabase; ALTER ROLE db_datareader ADD MEMBER looker; GO
授予 Looker 使用者查看和停止執行查詢的權限
Looker 必須獲得授權才能偵測和停止正在執行的查詢,這需要以下權限:
ALTER ANY CONNECTIONVIEW 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 來驗證 Kerberos 用戶端是否已安裝在 Looker 機器上。如果未安裝 Kerberos 用戶端,請安裝 Kerberos 用戶端二進位。
例如,在 Redhat 或 CentOS 系統上,操作如下:
sudo yum install krb5-workstation krb5-libs krb5-auth-dialog
Java 8
Looker 機器上必須安裝 Java 8,且 Looker 使用者的 PATH 和 JAVA_HOME 中也必須安裝 Java 8。如有必要,請將其安裝到本機 looker 目錄中。
Java 加密擴充
從此 Oracle 下載頁面 下載並安裝適用於 Java 8 的 Java 加密擴充功能 (JCE)。
- 找到 Java 安裝目錄
jre/lib/security。 - 從該目錄中刪除以下 JAR 檔案:
local_policy.jar和US_export_policy.jar。 - 將這兩個檔案替換為 JCE Unlimited Strength Jurisdiction Policy Files 下載包中包含的 JAR 檔案。
雖然可以使用 Java 8 之前的 Java 版本並安裝 JCE,但不建議這樣做。
- 找到 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。如果它位於其他位置,則必須在環境中指定(在 shell 環境中為 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 票據。
自動續訂機票
設定定時任務,定期運行,以在 Kerberos 票據快取中保持活動票據。此操作的運作頻率取決於叢集的配置。klist 應能顯示門票的剩餘效期。
建立 Looker 資料庫連線
請依照以下步驟建立 Looker 與資料庫之間的連線:
- 在 Looker 的「管理」部分中,選取「連線」,然後按一下「新增連線」。
從 方言 下拉選單中,選擇您的 Microsoft SQL Server 版本。
對於 遠端主機 和 連接埠,請輸入主機名稱和連接埠(預設連接埠為 1433)。
如果您需要指定除 1433 之外的非預設端口,並且您的資料庫要求使用逗號而不是冒號,則可以在連接設定下方的 附加 JDBC 參數 欄位中新增
useCommaHostPortSeparator=true,以便您可以在 遠端主機:端口 中使用逗號。例如:jdbc:sqlserver://hostname,1434填寫剩餘的連接資訊。在這些設定中,有絕大部分都是多數資料庫方言的常用設定。參見將 Looker 連接到您的資料庫文件頁面提供相關資訊。
如要確認連線是否成功,請按一下「連線設定」頁面底部的「狀態詳細資料」區段中的「測試連線」按鈕。
如果 Looker 顯示「可以連線」,請按「連線」建立連線。
資料庫連線隨即會新增至 Looker「連線」管理頁面的清單。
配置 Looker 連接
請依照 將 Looker 連線到資料庫 文件頁面上的說明建立與 MSSQL 資料庫的連線。在其他 JDBC 參數該部分連接設定在頁面上,新增以下內容:
;integratedSecurity=true;authenticationScheme=JavaKerberos
有些網路配置了兩個 Kerberos 網域,一個用於 Windows Active Directory,另一個用於 Linux 和其他非 Windows 系統。在這種情況下,當以 Linux 為中心的領域和 Active Directory 領域配置為相互信任時,就稱為「跨領域身份驗證」。
如果您的網路使用跨網域驗證,則必須明確指定 MSSQL Server 的 Kerberos 主體。在「附加 JDBC 參數」欄位中,新增以下內容:
;serverSpn=service_name/FQDN\:PORT@REALM
請將 FQDN 和 PORT@REALM 替換為您的網路資訊。例如:
;serverSpn=MSSQLSvc/dbserver.internal.example.com:1433@AD.EXAMPLE.COM
此外,Looker 中的 連接設定 頁面需要在 使用者名稱 和 密碼 欄位中填寫信息,但 Kerberos 不需要填寫這些資訊。請在以下欄位中輸入虛擬值。
測試連接,確保配置正確。
支援的 JDBC 參數
對於 Microsoft SQL Server,Looker 支援連線的 附加 JDBC 參數 欄位中的下列 JDBC 參數。如要瞭解這些參數,請參閱資料庫的說明文件。
accessTokenApplicationIntentapplicationNameauthenticationauthenticationSchemecancelQueryTimeoutcolumnEncryptionSettingdatabasedatabaseNamedisableStatementPoolingdomainenablePrepareOnFirstPreparedStatementCallEncryptfailoverPartnerfipsgsscredentialhostNameInCertificateinstanceNameIntegrated SecurityintegratedSecurityjaasConfigurationNamekeyStoreAuthenticationlastUpdateCountlocktimeoutloginTimeoutmsiClientIdmultiSubnetFailoverpacketSizepasswordportNumberqueryTimeoutrealmresponseBufferingselectMethodsendStringParametersAsUnicodesendTimeAsDatetimeserverNameserverPreparedStatementDiscardThresholdserverSpntransparentNetworkIPResolutiontrustServerCertificateuseBulkCopyForBatchInsertuseCommaHostPortSeparatoruserworkstationIDxopenStates
功能支援
如要讓 Looker 支援某些功能,資料庫方言也必須支援這些功能。
從 Looker 26.16 版本開始,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 26.16 版本開始,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 26.16 版本開始,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 | |
| 毫秒 | |
| 微秒 | |
| 具體化檢視表 | |
| 與前一段時期相比的指標 | |
| 不重複值的概略計數 | |
| 資料庫內分析模型 | |
| 自訂日曆 |