---
schema_version: "1"
id: a80b27ac8c3f45a0df29a9a1d2e5ae6d57e7cdbe5e7f4efa2d7bb147ab2fa405
title: 启用 Kerberos 委派
collection: tableau
version: current
locale: zh-cn
portal_url: https://docs.salesforce.com/tableau/current/zh-cn/server-linux/kerberos_delegation.md
canonical_url: https://help.tableau.com/current/server-linux/zh-cn/kerberos_delegation.htm
source_site: help.tableau.com
content_type: documentation
content_hash: 4d293af982ff1e4e71f70629d8f1b116ffc4c937cd1337ee6bbac98d5c87434c
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-cn/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 委派将成为默认操作。但是，此设置不会阻止内容创建者访问服务帐户。创建者仍然可以使用 Tableau Desktop 或其他方法发布与“运行身份”服务帐户连接的内容。

有关运行身份服务帐户的详细信息，请参见[启用 Kerberos 服务帐户访问](https://help.tableau.com/current/server-linux/zh-cn/kerberos_runas_linux.htm)。

## 配置过程

此部分提供用于启用 Kerberos 委派的过程示例。该方案还包括示例名称，用于帮助描述配置元素之间的关系。

1. Tableau Server 将需要 Kerberos 服务票证来代表发起数据库调用的用户进行委派。您必须创建一个将用于委派给给定数据库的域帐户。此帐户称为运行身份服务帐户。在本主题中，配置为委派/运行身份帐户的示例用户为 `tabsrv@example.com`。
    
    在连接到用户域的 Windows Server 上，该帐户必须配置为具有 Active Directory 用户和计算机：
    
    - 打开运行身份服务帐户的“**属性**”页面，单击“**委派**”选项卡，并选择**“仅信任此用户作为指定服务的委派”**和 “**使用任何身份验证协议**”。
2. 为运行身份服务帐户创建一个密钥表文件。
    
    例如，以下命令使用 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 委派，设置委派服务帐户，并将密钥表文件与服务帐户关联：
    
    					
    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-cn/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-cn/kerberos_trouble.htm)

## 此部分中的其他文章