---
schema_version: "1"
id: 4bba952f04fc2796645346e5ac7ae0f3f0679dc8d7f86caa54c1f7697a62b274
title: 启用 Kerberos 委派
collection: tableau
version: next
locale: zh-cn
portal_url: https://docs.salesforce.com/tableau/next/zh-cn/server/kerberos_delegation.md
canonical_url: https://help.tableau.com/v0.0/server/zh-cn/kerberos_delegation.htm
source_site: help.tableau.com
content_type: documentation
content_hash: 31c74cfab8a8d0553d87e1e42b0030efcaec2fd61abc51205b21382d83be898b
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
- MSAS
- Oracle
- PostgreSQL
- Spark
- SQL Server
- Teradata
- Vertica
- TIBCO

## 要求

Kerberos 委派需要 Active Directory。

- 必须将 Tableau Server [身份存储](https://help.tableau.com/v0.0/server/zh-cn/plan_identity_store.htm)配置为使用 Active Directory。
- 安装有 Tableau Server 的计算机必须加入到 Active Directory 域。
- 不支持 MIT Kerberos KDC。
- 域帐户必须配置为 Tableau Server 上的运行身份服务帐户。请参见[更改运行身份服务帐户](https://help.tableau.com/v0.0/server/zh-cn/runas_acct.htm)。如果您的用户与 Tableau Server 和数据源位于不同的 Active Directory 域中，则必须配置域信任。请参见[Active Directory 部署的域信任要求](https://help.tableau.com/v0.0/server/zh-cn/runas_domain.htm)。
- 已配置委派。将运行身份服务帐户的委派权限授予目标数据库服务主体名称 (SPN)。将为运行身份服务帐户授予代表发起源用户访问资源的权限。
- 如果要使用基于 JDBC 的连接器在包含 Oracle 数据源的 Tableau Server 2020.2 或更高版本上配置委派，请参见[为 JDBC 连接器启用 Kerberos 委派](https://help.tableau.com/v0.0/server/zh-cn/kerberos_delegation_jdbc.htm)。从 Tableau 2020.2 开始，Oracle 连接器使用 JDBC。

## 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 或其他方法发布与“运行身份”服务帐户连接的内容。

有关运行身份服务帐户的详细信息，请参见[使用运行身份服务帐户访问数据](https://help.tableau.com/v0.0/server/zh-cn/runas_access.htm)。

## 配置过程

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

1. 在 Tableau Server 中的所有节点上，将用户运行身份配置为以操作系统方式执行。有关详细信息，请参见[启用运行身份服务帐户以充当操作系统](https://help.tableau.com/v0.0/server/zh-cn/runas_os.htm)。
2. Tableau Server 将需要 Kerberos 服务票证来代表发起数据库调用的用户进行委派。您必须创建一个将用于委派给给定数据库的域帐户。此帐户称为运行身份服务帐户。在本主题中，配置为委派/运行身份帐户的示例用户为 `tabsrv@example.com`。
    
    在连接到用户域的 Windows Server 上，该帐户必须配置为具有 Active Directory 用户和计算机：
    
    - 打开运行身份服务帐户的“**属性**”页面，单击“**委派**”选项卡，并选择**“仅信任此用户作为指定服务的委派”**和 “**使用任何身份验证协议**”。
3. 运行以下 TSM 命令以启用 Kerberos 委派：
    
    `tsm configuration set -k wgserver.delegation.enabled -v true`
4. 运行以下 TSM 命令，应用对 Tableau Server 所做的更改：
    
    `tsm pending-changes apply`
    
    如果待定更改需要重新启动服务器，`pending-changes apply` 命令将显示一个提示，告知您将进行重新启动。即使服务器已停止，此提示也会显示，但在这种情况下不会重新启动。您可以使用 `--ignore-prompt` 选项隐藏提示，但这样做不会改变重新启动行为。如果更改不需要重新启动，则会在不提示的情况下应用更改。有关详细信息，请参见[tsm pending-changes apply](https://help.tableau.com/v0.0/server/zh-cn/cli_pending-changes.htm#pending-changes-apply)。
5. （可选）将 Tableau Server 配置为使用 MIT Kerberos 主体格式。
    
    默认情况下，Tableau Server 会使用 Active Directory 短名称生成 Kerberos 主体。举例来说，如果 Tableau Server 对 `EXAMPLE.COM`（短名称为 `EXAMPLE`）中的用户执行 Kerberos 委派，则主体名称将为：`user@example`。
    
    如果您的数据库在 Linux 上运行，则可能需要在 krb5.conf 中调整 `auth_to_local` 映射。有关编辑 krb5.conf 文件的信息，请参见[Kerberos 委派多域配置](https://help.tableau.com/v0.0/server/zh-cn/kerberos_trouble.htm#multi)。或者，可以通过运行以下命令将 Tableau Server 配置为使用 Kerberos 主体的完整域名：
    
    tsm configuration set -k native\_api.protocol\_transition\_a\_d\_short\_domain -v false --force-keys
    tsm configuration set -k native\_api.protocol\_transition\_uppercase\_realm -v true --force-keys
    tsm pending-changes apply
6. 为数据连接启用委派：
    
    - **SQL Server** — 请参见 Tableau 社区中的[为 SQL Server 启用 Kerberos 委派](https://community.tableau.com/s/question/0D54T00000CWcplSAD/enabling-kerberos-delegation-for-sql-server)。
    - **MSAS** — 请参见 Tableau 社区中的[为 MSAS 启用 Kerberos 委派](https://community.tableau.com/s/question/0D54T00000G54sYSAR/enabling-kerberos-delegation-for-msas)。
    - **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)。
    - **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)。
    - **TIBCO** — 请参见《TIBCO 数据可视化管理指南》中的 [配置 Kerberos 以与 TDV 一起使用](https://docs.tibco.com/pub/tdv/8.8.0/doc/html/en-US/StudioHelp/index.html#Administration/Configuring_Kerberos_for_Use_with_TDV.html)。
    
    ## 另请参见
    
    [Kerberos 疑难解答](https://help.tableau.com/v0.0/server/zh-cn/kerberos_trouble.htm)

## 此部分中的其他文章