---
schema_version: "1"
id: 7c548ce9be1bc713a6deef4dbcdcfaf65217e956177b4f4d0b4fb7386ee5b6fd
title: 创建用户筛选器并对其进行保护以便发布
collection: tableau
version: next
locale: zh-cn
portal_url: https://docs.salesforce.com/tableau/next/zh-cn/public/desktop/publish_userfilters_create.md
canonical_url: https://help.tableau.com/v0.0/public/desktop/zh-cn/publish_userfilters_create.htm
source_site: help.tableau.com
content_type: documentation
content_hash: f14eb9d52cc49410715121487d078df8e36fc21f9b1929a58afd2a0375b2303e
description: Create a user filter and secure it for publishing to implement row-level security.
---
[跳转到主要内容](#main-content)

# 创建用户筛选器并对其进行保护以便发布

## 先决条件

若要使用实时数据源实现行级安全性 (RLS)，请按照以下步骤操作。

若要使用数据提取实现 RLS，有一些额外的步骤和注意事项。有关详细信息，请参见[针对包含数据提取数据源的 RLS 的要求](https://help.tableau.com/v0.0/public/desktop/zh-cn/publish_userfilters.htm#rls-extract-req)。

**注意**：有关可用于在 Tableau 中实现 RLS 的替代方法的信息，请参见 [Tableau 中的行级安全性选项概述](https://help.tableau.com/v2021.4/server/zh-cn/rls_options_overview.htm)。

## 创建用户筛选器并将用户手动映射到值

基于用户的筛选是使用 RLS 帮助保护数据源或工作簿的一个选项。此过程最适合较小且相当静态的一组用户或组，以及只有少量需要用户筛选器的工作簿。

1. 在 Tableau Desktop 中，打开工作簿并连接到要筛选的数据。
2. 导航到要向其应用筛选器的工作表。
3. 选择“服务器”\>“创建用户筛选器”。然后选择要用来筛选视图的字段，例如“Region”（区域）。
4. 如果遇到提示，请登录到您的服务器或站点。
5. 在“用户筛选器”对话框中，为筛选器命名。我们将使用“Regional Managers”（区域经理）。
6. 在左侧选择一个用户或组，然后在右侧指明他们应该能够看到的值。对每个用户或组重复此过程，并在将用户映射到值后单击“确定”。
    
    对于此示例，将 Andrew Allen 设置为查看东部区域。
    
    ![带有用户列表和区域选择部分的用户筛选器对话框。](/tableau/next/zh-cn/public/desktop/zh-cn/Img/exuserfilter4.png)
7. 创建用户筛选器后，用户筛选器将显示在“数据”窗格的“集”区域中。
8. 将用户筛选器拖到**“筛选器”**功能区。此筛选器将成为上下文筛选器，并且视图将进行调整以显示允许您查看的数据。
    
    ![将“Regional Managers”（区域经理）字段添加到“筛选器”卡的 Tableau 工作表。](/tableau/next/zh-cn/public/desktop/zh-cn/Img/exuserfilter6.png)

### 若要测试或微调筛选器，请执行以下操作：

- 如果视图显示为空白画布，则您需要允许自己或您所在的组查看区域。在“数据”窗格的“集”区域中，打开用户筛选器上的下拉菜单，然后选择“编辑集”。
- 若要预览筛选器在已发布视图中的工作方式，请在工作簿的右下角打开**“筛选为用户”**菜单，然后从列表中选择用户或组。
    
    **注意：**如果工作簿连接到已发布数据源，则预览不可用。
- 若要返回以像您本人一样查看工作簿，请在“筛选为用户”菜单的右上角，选择“重置”。
- 若要将针对一个用户或组设置的选择映射至另一个用户或组（而不是手动映射相同的设置），请参见[将选定字段值从一个用户复制到另一个用户](#copy-selection)。

**已知限制**

如果使用 Tableau Desktop 和已发布数据源，请注意包含 LOD 表达式和用户函数的计算无法在 Tableau Desktop 中正确运算。这些计算已被剔除。

> [!IMPORTANT]
> 
> 重要信息：发布工作簿时，您需要执行其他步骤，以确保用户无法编辑工作簿和删除筛选器。有关信息，请参见[保护已发布内容中的用户筛选器](#publish-user-filters)。

## 使用数据中的安全字段创建动态筛选器

下面的步骤基于以下视图，该视图显示了一系列区域经理的年度销售业绩。

![显示按经理和年份划分的销售数据的条形图。](/tableau/next/zh-cn/public/desktop/zh-cn/Img/filterfunctions1.png)

如[在数据行级别限制访问权限](https://help.tableau.com/v0.0/public/desktop/zh-cn/publish_userfilters.htm#how-user-filters-work)中所述，此方法要求数据库包含要用于筛选的字段。

对于此示例，数据包括一个称为“People”（人员）的_引用表_，其中包含两个列：“Region”（区域）和“Manager”（经理）。“Manager”（经理）字段中的名称与 Tableau Cloud 或 Tableau Server 用户名匹配，我们将使用此字段进行筛选。

虽然字段和值不完全匹配，但是您可以使用 Tableau Desktop 随附的 Superstore 数据按照讲述进行操作。

### 连接到数据并设置用户筛选器

1. 在 Tableau Desktop 中，打开工作簿并连接到要筛选的数据。在本示例中，我们将使用一个名为“Orders”（订单）的表。
2. 双击“Orders”（订单）表以打开联接画布。使用左联接添加引用表（“People”（人员））。对于此示例，在字段“Region”（区域）上进行联接。
3. 在工作表上，选择“分析”\>“创建计算字段”，然后创建以下字段，命名为“User is a manager”（用户是经理）：
    
    `USERNAME() = [Manager]`
    
    ![](/tableau/next/zh-cn/public/desktop/zh-cn/Img/userfilter-calc-field.png)
    
    如果“People”（人员）表的经理列中存在登录到服务器的人员的用户名，则此计算返回 TRUE。
4. 将“User is a manager”（用户是一名经理）字段添加到“筛选器”功能区。
5. 在“筛选器”对话框中，选择“True”，然后单击“确定”。
    
    这会设置筛选器，以便只有是管理员的人员才能查看视图中的数据。如果“Manager”（经理）字段中未列出您，则您的视图在制作时可能会显示为空白画布。
6. 查看特定人员的视图外观：在右下角，打开“筛选为用户”菜单，然后选择您知道是经理的人员。

> [!IMPORTANT]
> 
> **重要信息**：与手动用户筛选器一样，您需要采取措施以[保护已发布内容中的用户筛选器](#publish-user-filters)。

## 筛选数据源

您可以筛选数据源，然后发布数据源，以使其能够作为共享的一对多资源提供给使用该数据的任何人，而不是对每个已发布的工作簿维护用户筛选器和特殊权限。

此过程根据本主题中描述的动态筛选器方法而构建。

1. 完成[使用数据中的安全字段创建动态筛选器](#dynamic)中的步骤。
2. 在 Tableau Desktop 的左下区域中，选择“数据源”选项卡。
3. 在“数据源”页面的右上区域中的“筛选器”下面，单击“添加”。
    
    ![](/tableau/next/zh-cn/public/desktop/zh-cn/Img/filter_datasource1.png)
4. 在“编辑数据源筛选器”对话框中，单击“添加”，添加为动态筛选器创建的计算字段（“User is a manager”（用户是经理）），并将筛选器设置为“True”。单击“确定”，直到返回“数据源”页面。

### 全局筛选器和数据源筛选器

创建数据源筛选器时，任何使用该数据源的全局筛选器将自动显示在“编辑数据源筛选器”对话框中，以便您可以将全局筛选器提升为数据源筛选器。若要将全局筛选器提升为数据源筛选器，请单击“确定”。

![“编辑数据源筛选器”对话框。](/tableau/next/zh-cn/public/desktop/zh-cn/Img/global_filter_dsfilter_autopromote.png)

如果您将全局筛选器提升为数据源筛选器，则该全局筛选器在工作簿的工作表中将不再可见（因为它变成了数据源筛选器）。

**注意**：请注意，您不需要在“编辑数据源筛选器”对话框中选择全局筛选器以对其进行提升。当您单击“确定”时，将提升列表中的所有全局筛选器。若要阻止将全局筛选器提升为数据源筛选器，请在“编辑数据源筛选器”对话框中选择全局筛选器，然后单击“删除”。  

## 保护已发布内容中的用户筛选器

当您发布具有用户筛选器的工作簿或数据源时，您需要设置权限以确保打开工作簿或连接到 Tableau Server 数据源的用户无法移除筛选器，从而获得所有数据的访问权限。

**说明**

- 在发布之前，我们建议您咨询您的 Tableau 管理员，以了解组织中的任何现有政策，尤其是设置权限。另请参见[发布数据源或工作簿时设置权限](https://help.tableau.com/v0.0/public/desktop/zh-cn/publish_workbooks_permissions_add.htm)。
- 此信息适用于发布包含实时连接的数据源以及其数据存储为多个表的数据提取。

**权限设置**

若要保护用户筛选器，必须在发布期间或发布以后在服务器上将以下功能设置为“拒绝”。

<table class="simple-table"><colgroup><col><col></colgroup><thead><tr><th>工作簿</th><th>数据源</th></tr></thead><tbody><tr><td><ul><li>Web 编辑</li><li>下载/保存副本</li><li>设置权限</li></ul></td><td><ul><li>保存</li><li>下载</li><li>设置权限</li></ul></td></tr></tbody></table>

## 将选定字段值从一个用户复制到另一个用户

手动创建用户筛选器时，将用户或组映射到数据值（成员）后，您可能想以同样的方式映射其他用户或组。您可以通过复制和粘贴设置来执行此操作。

1. 在“数据”窗格中的“集”下面，选择用户筛选器。单击下拉箭头，并选择“编辑集”。
2. 在“用户筛选器”对话框中，选择其他用户或组的设置所要粘贴到的用户或组。
3. 单击“复制自”，然后选择要复制其设置的用户或组。
    
    ![显示已应用筛选器的用户列表的对话框。](/tableau/next/zh-cn/public/desktop/zh-cn/Img/userfilter8.png)