启用 Kerberos 服务帐户访问

您可以将 Tableau Server 配置为使用 Kerberos 服务帐户来访问数据库。在这种情况下,Tableau Server 会使用服务帐户(也称为“RunAs 帐户”)连接到数据库。

若要在 Tableau Server 上使用 RunAs 身份验证,必须首先创建使用集成身份验证的工作簿或数据源。当用户发布到 Tableau Server 时,他们将获得用于 RunAs 身份验证的选项。如果通过使用集成身份验证的 Tableau Server Web 制作创建数据源,则默认情况下,数据源将使用 RunAs 身份验证。

注意集成身份验证在某些连接器上也称为 Windows 身份验证。 在这两种情况下,Tableau Server 都使用 Kerberos 身份验证。

使用运行身份服务帐户访问数据

若要使用 RunAs 身份验证,RunAs 帐户需要外部数据库的读取和查询权限。按照设计,具有“Creator”角色或“Explorer(可发布)”角色的Tableau Server 需要 RunAs 帐户的完全访问权限才能查询外部数据库。

例如,具有 Creator 角色的用户可以查看已被授予运行身份服务帐户访问权限的所有数据库。他们还可以列出表并运行自定义 SQL。

如果 Creator 用户指定数据库主机名并在使用 Web 制作创建新数据源时选择“集成身份验证”,则会向用户显示已被授予 RunAs 访问权限的数据库。

对数据库资产的“查看”访问权限不限于使用 Web 制作连接到 Tableau Server 的用户。具有上述相同角色且了解数据库服务器名称的成熟用户可以使用 Tableau Desktop 创建工作簿,以显示已被授予 RunAs 访问权限的数据库。

推荐配置

在这些情形下,用户对数据库的访问是否可接受必须由您的组织进行评估。通常,减少运行身份服务帐户的使用和范围将减少用户无意中访问数据库内容的可能性。但是,减少运行身份服务帐户的使用和范围也可能对您和您的用户施加更多的凭据管理。

根据业务需求和数据访问策略评估以下建议。

  • 首先,请确保您信任具有“Creator”角色或“Explorer(可发布)”角色的所有用户。您将依靠这些用户在 Tableau 中诚信地执行操作。
  • 如果无法信任对运行身份服务帐户访问的数据源具有发布权限的所有用户,则应考虑为这些数据源嵌入凭据。
  • 如果未为自动数据提取刷新设置数据源,也就是说,数据源主要以实时连接形式进行访问,则可以使用 Kerberos 委派。有关要求,请参见启用 Kerberos 委派

要求

  • 不支持 MIT Kerberos。
  • RunAs 服务帐户必须具有对目标数据库的读取访问权限。

配置过程

本部分提供了一个启用 Kerberos 服务帐户访问的过程示例。

  1. 创建一个域用户帐户作为 RunAs 服务帐户。此帐户必须具有对目标数据库的读取访问权限。

    在此处的示例中,RunAs 服务帐户是名为 tabsrv@example.com 的用户主体。

  2. 为 RunAs 服务帐户创建一个 keytab 文件。

    例如,以下命令使用 ktutil 工具创建一个密钥表 (tabsrv-runas.keytab):

    ktutil
    ktutil:  addent -password -p tabsrv@EXAMPLE.COM -k 2 -e <encryption scheme>

    此命令的加密方案包括 RC4-HMACaes128-cts-hmac-sha1-96aes256-cts-hmac-sha1-96。请咨询您的 IT 团队,以获取适用于您的环境和数据源的正确加密方案。

    ktutil:  wkt tabsrv-runas.keytab

    Tableau Server 将使用 RunAs 服务帐户和关联的 keytab 进行身份验证并直接连接到数据库。

  3. 将密钥表文件复制到 Tableau Server 数据目录中,并设置适当的所有权和权限。密钥表应可由非特权用户读取。Tableau 安装程序创建的默认非特权用户为 tableau

    如果要运行多节点部署,则必须在群集中的每个节点上运行以下命令:

    mkdir /var/opt/tableau/tableau_server/keytab                
    sudo cp -p tabsrv-runas.keytab /var/opt/tableau/tableau_server/keytab                 
    sudo chown $USER /var/opt/tableau/tableau_server/keytab/tabsrv-runas.keytab                  
    chgrp tableau /var/opt/tableau/tableau_server/keytab/tabsrv-runas.keytab                  
    chmod g+r /var/opt/tableau/tableau_server/keytab/tabsrv-runas.keytab 
    
  4. 运行以下 TSM 命令以启用 RunAs 访问权限、设置 RunAs 服务帐户,并将 keytab 文件与服务帐户相关联。

    tsm configuration set -k features.RunAsAuthLinux -v true --force-keys
    tsm configuration set -k native_api.datasource_runas_principal -v tabsrv@EXAMPLE.COM --force-keys
    tsm configuration set -k native_api.datasource_runas_keytab_path -v /var/opt/tableau/tableau_server/keytab/tabsrv-runas.keytab --force-keys			
  5. 运行以下 TSM 命令,应用对 Tableau Server 部署所做的更改:

    tsm pending-changes apply

    如果待定更改需要重新启动服务器,pending-changes apply 命令将显示一个提示,告知您将进行重新启动。即使服务器已停止,此提示也会显示,但在这种情况下不会重新启动。您可以使用 --ignore-prompt 选项隐藏提示,但这样做不会改变重新启动行为。如果更改不需要重新启动,则会在不提示的情况下应用更改。有关详细信息,请参见tsm pending-changes apply

感谢您的反馈!