---
schema_version: "1"
id: e80a6b56c3faca46ce01825f63041d9a308715dcd64b8bd8cad1962328f0d330
title: 啟用 Kerberos 委派
collection: tableau
version: current
locale: zh-tw
portal_url: https://docs.salesforce.com/tableau/current/zh-tw/server-linux/kerberos_delegation.md
canonical_url: https://help.tableau.com/current/server-linux/zh-tw/kerberos_delegation.htm
source_site: help.tableau.com
content_type: documentation
content_hash: 2ad370b0d3f358b1af765494a81d81121a398c91b023533215c480befb76edbe
description: Enable Kerberos delegation so Tableau Server queries data as the viewer.
---
[跳至主要內容](#main-content)

# 啟用 Kerberos 委派

利用 Kerberos 委派，Tableau Server 能夠使用工作簿或檢視 Viewer（檢視者）的 Kerberos 認證代表該 Viewer（檢視者）執行查詢。在以下情況下，這種方法很有用：

- 您需要知道誰正在存取資料（Viewer（檢視者）的名稱將出現在資料來源的存取記錄中）。
- 資料來源具有列層級安全性，即不同的使用者可以存取不同的列。

## 支援的資料來源

Tableau 支援使用下列資料來源進行 Kerberos 委派：

- Cloudera：Hive/Impala
- Denodo
- Hortonworks
- Oracle
- PostgreSQL
- Spark
- SQL Server
- Teradata
- Vertica

Linux 平台不支援 MSAS。

## 需求

Kerberos 委派需要 Active Directory。

- 必須將 Tableau Server [身分存放區](https://help.tableau.com/current/server-linux/zh-tw/plan_identity_store.htm)設定為使用 Active Directory。
- 安裝有 Tableau Server 的電腦必須聯結到 Active Directory 網域。
- 不支援 MIT Kerberos KDC。

## Web 製作與使用者 Kerberos 驗證

為給定目標設定到資料的連線時，可以選取整合或 Windows 驗證作為首選驗證方法。但是，對於 Web 製作方案，預設行為是使用 Kerberos 服務帳戶（「執行身分」帳戶）。

要在具有 Kerberos 委派的 Web 製作方案中啟用使用者認證，則必須使用 TSM 進行附加設定。執行以下命令：

tsm configuration set -k native\_api.WebAuthoringAuthModeKerberosDelegation -v true

tsm pending-changes apply

進行此設定後，選擇使用 Web 製作整合式進行身分驗證時，Kerberos 委派將成為預設操作。但是，此設定不會阻止內容 Creator 存取服務帳戶。Creator 仍可使用 Tableau Desktop 或其他方法發佈與執行身分服務帳戶連結的內容。

有關「執行身分」服務帳戶的詳情，請參閱[啟用 Kerberos 服務帳戶存取](https://help.tableau.com/current/server-linux/zh-tw/kerberos_runas_linux.htm)。

## 設定過程

此部分提供用於啟用 Kerberos 委派的過程範例。該方案還包括範例名稱，用於說明描述設定元素之間的關係。

1. Tableau Server 將需要 Kerberos 服務票證來代表發起資料庫調用的使用者進行委派。您必須建立一個將用於委派給給定資料庫的網域帳戶。此帳戶稱為執行身分服務帳戶。在本主題中，設定為委派/執行身分帳戶的範例使用者為 `tabsrv@example.com`。
    
    在連線到使用者域的 Windows Server 上，該帳戶必須設定為具有 Active Directory 使用者和電腦：
    
    - 開啟執行身分服務帳戶的「**屬性**」頁面，按一下「**委派**」索引標籤，並選取**「僅信任此使用者作為指定服務的委派」**和「**使用任何驗證協議**」。
2. 為執行身分服務帳戶建立一個 Keytab 檔案。
    
    例如，以下命令使用 ktutil 工具建立一個金鑰表 `(tabsrv-runas.keytab`)：
    
    sudo ktutil
    
    ktutil:  addent -password -p tabsrv@EXAMPLE.COM -k 2 -e <encryption scheme>
    
    此命令的加密方案包括 `RC4-HMAC`、`aes128-cts-hmac-sha1-96` 和 `aes256-cts-hmac-sha1-96`。請諮詢您的 IT 團隊，以獲取適用於您的環境和資料來源的正確加密方案。
    
    ktutil:  wkt tabsrv-runas.keytab
    
    Tableau Server 將使用執行身分服務帳戶和關聯的金鑰表進行驗證並直接連線到資料庫。
3. 將金鑰表檔複製到 Tableau Server 資料目錄中，並設定適當的所有權和權限。如果您執行的是多節點部署，就必須在叢集的每個節點上執行以下命令。
    
    mkdir /var/opt/keytab                
    sudo cp -p tabsrv-runas.keytab /var/opt/keytab                 
    sudo chown $USER /var/opt/keytab/tabsrv-runas.keytab                  
    chgrp tableau /var/opt/keytab/tabsrv-runas.keytab                  
    chmod g+r /var/opt/keytab/tabsrv-runas.keytab
4. 執行以下 TSM 命令以啟用 Kerberos 委派，設定委派服務帳戶，並將 Keytab 檔案與服務帳戶關聯：
    
    					
    tsm configuration set -k wgserver.delegation.enabled -v true
    tsm configuration set -k native\_api.datasource\_impersonation\_runas\_principal -v tabsrv@EXAMPLE.COM
    tsm configuration set -k native\_api.datasource\_impersonation\_runas\_keytab\_path -v /var/opt/keytab/tabsrv-runas.keytab
    tsm configuration set -k native\_api.protocol\_transition\_a\_d\_short\_domain -v false
    tsm configuration set -k native\_api.protocol\_transition\_uppercase\_realm -v true
    
    在某些情況下，TSM 可能會返回提到 `--force-keys` 的錯誤。如果遇到此錯誤，請使用附加到引數的 `--force-keys` 參數再次執行命令。
5. 執行以下 TSM 命令，應用對 Tableau Server 所做的變更：
    
    `tsm pending-changes apply`
    
    如果擱置組態需要重新啟動伺服器，`pending-changes apply` 命令將顯示提示，讓您知道即將重新啟動。即使伺服器已停止，也會顯示提示，但在這種情況下不會重新啟動。您可以使用 `--ignore-prompt` 選項隱藏提示，但這樣做不會改變重新啟動行為。如果變更不需要重新啟動，則不會出現提示即可套用變更。有關詳情，請參閱 [tsm pending-changes apply](https://help.tableau.com/current/server-linux/zh-tw/cli_pending-changes.htm#pending-changes-apply)。
6. 為資料連線啟用委派：
    
    - **SQL Server** — 請參閱 Tableau 社群中的[為 SQL Server 啟用 Kerberos 委派](https://community.tableau.com/s/question/0D54T00000CWcplSAD/enabling-kerberos-delegation-for-sql-server)。
    - **PostgreSQL** — 請參閱 Tableau 社群中的[為 PostgreSQL 啟用 Kerberos 委派](https://community.tableau.com/s/question/0D54T00000G54ssSAB/enabling-kerberos-delegation-for-postgresql)。
    - **Teradata** — 請參閱 Tableau 社群中的[為 Teradata 啟用 Kerberos 委派](https://community.tableau.com/s/question/0D54T00000G54tCSAR/enabling-kerberos-delegation-for-teradata)。
    - **Denodo** — 請參閱 Tableau 社群中的[在 Linux 上為 Denodo 啟用 Kerberos 委派](https://community.tableau.com/s/question/0D54T00000CWdD7SAL/enabling-kerberos-delegation-for-denodo-on-linux)。
    - **Oracle**—請參閱 Tableau 社群中的[為 Oracle 啟用 Kerberos 委派](https://community.tableau.com/s/news/a0A4T000002O42jUAC/enable-kerberos-delegation-for-oracle)。
    - **Cloudera** — 請參閱 Tableau 社群中的[為 Hive/Impala 啟用 Kerberos 委派](https://community.tableau.com/s/question/0D54T00000CWdINSA1/enable-delegation-for-hiveimpala)。
    - **Vertica** — 請參閱 Tableau 社群中的[為 Vertica 啟用 Kerberos 委派](https://community.tableau.com/s/question/0D54T00000CWd5sSAD/enabling-kerberos-delegation-for-vertica)。
    
    ## 另請參閱
    
    [Kerberos 疑難排解](https://help.tableau.com/current/server-linux/zh-tw/kerberos_trouble.htm)

## 此區段的其他文章