

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用命名资源方法授予数据权限
<a name="granting-cat-perms-named-resource"></a>

命名 Data Catalog 资源方法是一种使用集中方式，向 AWS Glue Data Catalog 对象（如目录、数据库、表、列和视图等）授予权限的方法。利用这种方法，您可以定义基于资源的策略，以控制对数据湖中特定资源的访问。

使用命名资源方法授予权限时，可以指定资源类型以及要针对该资源授予或撤销的权限。如果需要，您还可以在以后撤销权限，从而从相关资源中删除权限。

您可以使用 AWS Lake Formation 控制台 APIs、或 AWS Command Line Interface (AWS CLI) 来授予权限。

**Topics**
+ [使用命名资源方法授予目录权限](granting-multi-catalog-permissions.md)
+ [使用命名资源方法授予数据库权限](granting-database-permissions.md)
+ [使用命名资源方法授予表权限](granting-table-permissions.md)
+ [使用命名资源方法授予对视图的权限](granting-view-permissions.md)

# 使用命名资源方法授予目录权限
<a name="granting-multi-catalog-permissions"></a>

以下步骤说明如何使用命名资源方法授予目录权限。

------
#### [ Console ]

使用 Lake Formation 控制台上的**授予权限**页面。该页面分为以下几个部分：
+ **主体类型**：您可以向特定主体授予权限或使用属性标签。
  +  **主体**：授予权限的 IAM 用户、角色、IAM Identity Center 用户和组、SAML 用户和组、 AWS 账户、组织或组织单元。

    **按属性划分的委托人** — 添加来自 IAMroles 或 IAM 会话标签的标签键值对。具有匹配属性的主体会获得指定资源的访问权限。
  +  **LF 标签或目录资源**：要对其授予权限的目录、数据库、表、视图或资源链接。
  +  **权限** – 要授予的 Lake Formation 权限。

**注意**  
要授予对数据库资源链接的权限，请参阅[授予资源链接权限](granting-link-permissions.md)。

1. 打开**授予权限**页面。

   在打开 AWS Lake Formation 控制台 [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)，然后以数据湖管理员、目录创建者或对目录拥有**可授予权限**的 IAM 用户身份登录。

   请执行以下操作之一：
   + 在导航窗格的**权限**下，选择**数据权限**。然后选择**授予**。
   + 在导航窗格的 **Data Catalog** 下，选择**目录**。然后，在**目录**页面上选择一个目录，并在**操作**菜单的**权限**下选择**授予**。
**注意**  
您可以通过目录的资源链接授予对目录的权限。为此，在**目录**页面上选择一个目录链接容器，然后在**操作**菜单上选择**对目标授予**。有关更多信息，请参阅 [资源链接在 Lake Formation 中的工作原理](resource-links-about.md)。

1. 接下来，在**主体类型**部分，选择主体或指定附加到主体的属性。  
![\[主体类型部分包含两个水平排列的磁贴，其中每个磁贴都包含一个选项按钮和描述性文本。选项是主体和按属性划分的主体。标题下方是主体。\]](http://docs.aws.amazon.com/zh_cn/lake-formation/latest/dg/images/grant-catalog-principal-type.png)

****指定委托人****  
**IAM 用户和角色**  
从 **IAM 用户和角色**列表中选择一个或多个用户或角色。  
**IAM Identity Center**  
从**用户和组**列表中选择一个或多个用户或组。选择**添加**以添加更多用户或组。  
**SAML 用户和组**  
对于 **SAML 和 Quick 用户和群组**，请为通过 SAML 联合的用户或群组或 Amazon Quick 用户或群组输入一个或多个 ARNs Amazon 资源名称 (ARNs)。在每个 ARN 后按 Enter。  
有关如何构造的信息 ARNs，请参见[Lake Formation 授予和撤销命令 AWS CLI](lf-permissions-reference.md#perm-command-format)。  
只有 Quick 企业版支持 Lake Formation 与 Quick 集成。  
**外部账户**  
对于**AWS 账户 AWS 组织**或 **IAM 委托人**，请为 IAM 用户或角色输入一个或多个有效的 AWS 账户 IDs IDs IDs、组织、组织单位或 ARN。在每个 ID 后按 **Enter**。  
组织 ID 由“o-”后跟 10 到 32 个小写字母或数字组成。  
单位 ID 以“ou-”开头，后跟 4 到 32 个小写字母或数字（包含 OU 的根的 ID）。该字符串后跟第二个“-”短横线和 8 到 32 个额外的小写字母或数字。

****按属性划分的主体****  
**属性**  
从 IAM 角色添加 IAM 标签键值对。  
**权限范围**  
请指定您是向同一账户具有匹配属性的主体，还是向另一账户中具有匹配属性的主体授予权限。

1. 在 **LF 标签或目录资源**部分下，选择**已命名数据目录资源**。  
![\[“LF 标签或目录资源”部分包含两个水平排列的磁贴，其中每个磁贴包含一个选项按钮和描述性文本。选项包括通过 LF 标签匹配的资源和命名数据目录资源。磁贴下方是两个下拉列表：“数据库”和“表”。“数据库”下拉列表下方有一个磁贴，其中包含所选数据库名称。\]](http://docs.aws.amazon.com/zh_cn/lake-formation/latest/dg/images/grant-target-resources-catalog.png)

1. 从**目录**列表中选择一个或多个目录。您也可以选择一个或多个**数据库**、**表**、 and/or **数据筛选器**。

1. 在**目录权限**部分，选择权限和可授予的权限。在**目录权限**下，选择要授予的一项或多项权限。  
![\[权限部分的目录权限磁贴。磁贴下方是一组要授予的目录权限对应的复选框。这些复选框包括“超级用户”、“创建目录”、“创建数据库”、“更改”、“放弃”、“描述”和“Super”。该组下方是另一组相同的复选框，代表可授予的权限。\]](http://docs.aws.amazon.com/zh_cn/lake-formation/latest/dg/images/grant-target-catalog-permissions-section.png)

   选择**超级用户**可授予不受限制的管理权限，以便对目录中的所有资源（数据库、表和视图）执行操作。
**注意**  
在对具有指向注册位置的位置属性的目录授予 `Create database` 或 `Alter` 权限后，请确保还向主体授予对该位置的数据位置权限。有关更多信息，请参阅 [授予数据位置权限](granting-location-permissions.md)。

1. （可选）在**可授予的权限**下，选择授予接收人可以向其 AWS 账户中的其他主体授予的权限。当您从外部账户向 IAM 主体授予权限时，不支持此选项。

1. 选择**授予**。

   **数据权限**页面显示权限详细信息。如果您使用**按属性划分的主体**选项来授予权限，则可以在列表中查看授予给 `ALLPrincipals` 的权限。

------
#### [ AWS CLI ]

有关使用授予目录权限的信息 AWS CLI，请参阅[创建 Amazon Redshift 联合目录](create-ns-catalog.md)。

------

# 使用命名资源方法授予数据库权限
<a name="granting-database-permissions"></a>

以下步骤说明如何使用命名资源方法授予数据库权限。

------
#### [ Console ]

使用 Lake Formation 控制台上的**授予权限**页面。该页面分为以下几个部分：
+  **主体类型**：**主体**部分包括要授予权限的 IAM 用户、角色、IAM Identity Center 用户和组、SAML 用户和组、 AWS 账户、组织或组织单元。在**按属性划分的主体**部分，您可以为附加到 IAM 角色的属性指定键和值。
+  **LF 标签或目录资源**：要对其授予权限的数据库、表、视图或资源链接。
+  **权限** – 要授予的 Lake Formation 权限。

**注意**  
要授予对数据库资源链接的权限，请参阅[授予资源链接权限](granting-link-permissions.md)。

1. 打开**授予权限**页面。

   在打开 AWS Lake Formation 控制台 [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)，然后以数据湖管理员、数据库创建者或对数据库拥有**可授予权限**的 IAM 用户身份登录。

   请执行以下操作之一：
   + 在导航窗格的**权限**下，选择**数据权限**。然后选择**授予**。
   + 在导航窗格的**数据目录**下，选择**数据库**。然后在**数据库**页面上选择一个数据库，并在**操作**菜单的**权限**下选择**授予**。
**注意**  
您可以通过数据库的资源链接授予对数据库的权限。为此，在**数据库**页面上选择一个资源链接，然后在**操作**菜单上选择**对目标的授权**。有关更多信息，请参阅 [资源链接在 Lake Formation 中的工作原理](resource-links-about.md)。

1. 在**主体类型**部分，指定主体或使用属性向主体授予权限。  
![\[“主体”部分包含四个磁贴。每个磁贴包含一个选项按钮和文本。\]](http://docs.aws.amazon.com/zh_cn/lake-formation/latest/dg/images/identity-center-grant-perm.png)  
**IAM 用户和角色**  
从 **IAM 用户和角色**列表中选择一个或多个用户或角色。  
**IAM Identity Center**  
从**用户和组**列表中选择一个或多个用户或组。选择**添加**以添加更多用户或组。  
**SAML 用户和组**  
对于 **SAML 和 Quick 用户和群组**，请为通过 SAML 联合的用户或群组或 Amazon Quick 用户或群组输入一个或多个 ARNs Amazon 资源名称 (ARNs)。在每个 ARN 后按 Enter。  
有关如何构造的信息 ARNs，请参见[Lake Formation 授予和撤销命令 AWS CLI](lf-permissions-reference.md#perm-command-format)。  
只有 Quick 企业版支持 Lake Formation 与 Quick 集成。  
**外部账户**  
对于**AWS 账户 AWS 组织**或 **IAM 委托人**，请为 IAM 用户或角色输入一个或多个有效的 AWS 账户 IDs IDs IDs、组织、组织单位或 ARN。在每个 ID 后按 **Enter**。  
组织 ID 由“o-”后跟 10 到 32 个小写字母或数字组成。  
单位 ID 以“ou-”开头，后跟 4 到 32 个小写字母或数字（包含 OU 的根的 ID）。该字符串后跟第二个“-”短横线和 8 到 32 个额外的小写字母或数字。  
按属性划分的主体  
指定属性键和值。如果选择多个值，则将使用 OR 运算符来创建属性表达式。这意味着，如果分配给 IAM 角色或用户的任何属性标签值匹配，则该角色或用户将 role/user 获得对资源的访问权限。  
 通过指定您是向同一账户中具有匹配属性的主体，还是向另一个账户中具有匹配属性的主体授予权限来选择权限范围。

1. 在 **LF 标签或目录资源**部分下，选择**已命名数据目录资源**。  
![\[“LF 标签或目录资源”部分包含两个水平排列的磁贴，其中每个磁贴包含一个选项按钮和描述性文本。选项包括通过 LF 标签匹配的资源和命名数据目录资源。磁贴下方是两个下拉列表：“数据库”和“表”。“数据库”下拉列表下方有一个磁贴，其中包含所选数据库名称。\]](http://docs.aws.amazon.com/zh_cn/lake-formation/latest/dg/images/grant-target-resources-section-2.png)

1. 从**数据库**列表中选择一个或多个数据库。您也可以选择一个或多个**表 and/or ****数据过滤器**。

1. 在**权限**部分中，选择权限和可授予的权限。在**数据库权限**下，选择一项或多项要授予的权限。  
![\[“权限”部分包含两个水平排列的磁贴。每个磁贴包含一个选项按钮和文本。“数据库权限”磁贴处于选中状态。另一个磁贴“基于列的权限”处于禁用状态，因为它与表权限相关。磁贴下方是一组要授予的数据库权限对应的复选框。这些复选框包括 Create Table、Alter、Drop、Describe 和 Super。该组下方是另一组相同的复选框，代表可授予的权限。\]](http://docs.aws.amazon.com/zh_cn/lake-formation/latest/dg/images/grant-target-db-permissions-section.png)
**注意**  
在授予对具有指向注册位置的位置属性的数据库的 `Create Table` 或 `Alter` 权限后，请确保还向主体授予对该位置的数据位置权限。有关更多信息，请参阅 [授予数据位置权限](granting-location-permissions.md)。

1. （可选）在**可授予的权限**下，选择授予接收人可以向其 AWS 账户中的其他主体授予的权限。当您从外部账户向 IAM 主体授予权限时，不支持此选项。

1. 选择**授予**。

------
#### [ AWS CLI ]

您可以使用命名资源方法和 AWS Command Line Interface (AWS CLI) 来授予数据库权限。

**要授予数据库权限，请使用 AWS CLI**
+ 运行 `grant-permissions` 命令，并根据所授予的权限将数据库或数据目录指定为资源。

  在以下示例中，*<account-id>*替换为有效的 AWS 账户 ID。  
**Example – 授予创建数据库的权限**  

  此示例向用户 `datalake_user1` 授予 `CREATE_DATABASE` 权限。由于被授予此权限的资源是数据目录，因此该命令会将空的 `CatalogResource` 结构指定为 `resource` 参数。

  ```
  1. aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::<account-id>:user/datalake_user1 --permissions "CREATE_DATABASE" --resource '{ "Catalog": {}}'
  ```  
**Example – 授予在指定数据库中创建表的权限**  

  下一个示例向用户 `datalake_user1` 授予对数据库 `retail` 的 `CREATE_TABLE` 权限。

  ```
  1. aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::<account-id>:user/datalake_user1 --permissions "CREATE_TABLE" --resource '{ "Database": {"Name":"retail"}}'
  ```  
**Example — 使用 “授权” 选项向外部 AWS 账户授权**  

  下一个示例使用授予选项向外部账户 1111-2222-3333 授予对数据库 `retail` 的 `CREATE_TABLE` 权限。

  ```
  1. aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=111122223333 --permissions "CREATE_TABLE" --permissions-with-grant-option "CREATE_TABLE" --resource '{ "Database": {"Name":"retail"}}'
  ```  
**Example – 向组织授予权限**  

  下一个示例使用授予选项向组织 `o-abcdefghijkl` 授予对数据库 `issues` 的 `ALTER` 权限。

  ```
  1. aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:organizations::111122223333:organization/o-abcdefghijkl --permissions "ALTER" --permissions-with-grant-option "ALTER" --resource '{ "Database": {"Name":"issues"}}'
  ```  
**Example - 向同一账户中的 `ALLIAMPrincipals` 授予权限**  

  下一个示例向同一账户中的所有主体授予对数据库 `retail` 的 `CREATE_TABLE` 权限。选择此选项后，账户中的每个主体即可在数据库中创建表并创建表资源链接，从而允许集成查询引擎访问共享数据库和表。当主体获得跨账户授权但无权创建资源链接时，此选项尤为有用。在这种情况下，数据湖管理员可以创建占位符数据库并向 `ALLIAMPrincipal` 组授予 `CREATE_TABLE` 权限，从而使账户中的每个 IAM 主体都能在占位符数据库中创建资源链接。

  ```
  1. aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=111122223333:IAMPrincipals --permissions "CREATE_TABLE"  --resource '{ "Database": {"Name":"temp","CatalogId":"111122223333"}}' 
  ```  
**Example - 向外部账户中的 `ALLIAMPrincipals` 授予权限**  

  下一个示例向外部账户中的所有主体授予对数据库 `retail` 的 `CREATE_TABLE` 权限。选择此选项后，账户中的每个主体即可在数据库中创建表。

  ```
  1. aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=111122223333:IAMPrincipals --permissions "CREATE_TABLE"  --resource '{ "Database": {"Name":"retail","CatalogId":"123456789012"}}'
  ```

**注意**  
在授予对具有指向注册位置的位置属性的数据库的 `CREATE_TABLE` 或 `ALTER` 权限后，请确保还向主体授予对该位置的数据位置权限。有关更多信息，请参阅 [授予数据位置权限](granting-location-permissions.md)。

------

**另请参阅**  
 [Lake Formation 权限参考](lf-permissions-reference.md) 
 [授予对与您的账户共享的数据库或表的权限](regranting-shared-resources.md) 
 [访问和查看共享数据目录表和数据库](viewing-shared-resources.md) 

# 使用命名资源方法授予表权限
<a name="granting-table-permissions"></a>

你可以使用 Lake Formation 控制台或 AWS CLI 授予 Lake Formation 对数据目录表的权限。您可以授予对单个表的权限，也可以通过一次授予操作来授予对数据库中所有表的权限。

如果您授予对数据库中所有表的权限，则将隐式授予对数据库的 `DESCRIBE` 权限。然后，数据库将显示在控制台的**数据库**页面上，由 `GetDatabases` API 操作返回。使用基于属性的访问权限控制（ABAC）时，这个自动 `DESCRIBE` 权限授予不适用。使用属性对数据库中所有表授予权限时，Lake Formation 不会向数据库隐式授予 `DESCRIBE` 权限。

当您选择 `SELECT` 作为要授予的权限时，可以选择应用列筛选条件、行筛选条件或单元格筛选条件。

------
#### [ Console ]

以下步骤说明如何使用命名资源方法和 Lake Formation 控制台上的**授予数据湖权限**页面来授予表权限。该页面分为以下几个部分：
+  **主体类型**：要向其授予权限的用户、角色、 AWS 账户、组织或组织单元。您还可向具有匹配属性的主体授予权限。
+  **LF 标签或目录资源** – 要对其授予权限的数据库、表或资源链接。
+  **权限** – 要授予的 Lake Formation 权限。

**注意**  
要授予对表资源链接的权限，请参阅[授予资源链接权限](granting-link-permissions.md)。

1. 打开“授予权限”页面。

   在打开 AWS Lake Formation 控制台 [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)，然后以数据湖管理员、表创建者或使用授权选项获得表权限的用户身份登录。

   请执行以下操作之一：
   + 在导航窗格的**权限**下，选择**数据权限**。然后选择**授予**。
   + 在导航窗格中，选择**表**。然后在**表**页面上选择一个表，并在**操作**菜单的**权限**下选择**授予**。
**注意**  
您可以通过表的资源链接授予对表的权限。为此，在**表**页面上选择一个资源链接，然后在**操作**菜单上选择**对目标的授权**。有关更多信息，请参阅 [资源链接在 Lake Formation 中的工作原理](resource-links-about.md)。

1. 接下来，在**主体类型**部分，指定主体或使用匹配属性向主体授予权限。  
**IAM 用户和角色**  
从 **IAM 用户和角色**列表中选择一个或多个用户或角色。  
**IAM Identity Center**  
从**用户和组**列表中选择一个或多个用户或组。  
**SAML 用户和组**  
对于 **SAML 和 Quick 用户和群组**，请为通过 SAML 联合的用户或群组或快速用户或群组输入一个或 ARNs 多个 Amazon 资源名称 (ARNs)。在每个 ARN 后按 Enter。  
有关如何构造的信息 ARNs，请参见[Lake Formation 授予和撤销命令 AWS CLI](lf-permissions-reference.md#perm-command-format)。  
仅Quick 企业版支持 Lake Formation 与 Quick 集成。  
**外部账户**  
对于**AWS 账户 、 AWS 组织**或 **IAM 委托人**，请输入一个或多个有效的组织 AWS 账户 IDs IDs IDs、组织单位或 IAM 用户或角色的 ARN。在每个 ID 后按 **Enter**。  
组织 ID 由“o-”后跟 10 到 32 个小写字母或数字组成。  
单位 ID 以“ou-”开头，后跟 4 到 32 个小写字母或数字（包含 OU 的根的 ID）。该字符串后跟第二个“-”字符和 8 到 32 个额外的小写字母或数字。  
按属性划分的主体  
指定属性键和值。如果选择多个值，则将使用 OR 运算符来创建属性表达式。这意味着，如果分配给 IAM 角色或用户的任何属性标签值匹配，则该角色或用户将 role/user 获得对资源的访问权限  
 通过指定您是向同一账户中具有匹配属性的主体，还是向另一个账户中具有匹配属性的主体授予权限来选择权限范围。

1. 在 **LF 标签或目录资源**部分中，选择一个数据库。然后选择一个或多个表或**所有表**。  
![\[“LF 标签或目录资源”部分包含两个水平排列的磁贴，其中每个磁贴包含一个选项按钮和描述性文本。选项包括“通过 LF 标签匹配的资源”和“命名数据目录资源”。“命名数据目录资源”处于选中状态。磁贴下方是两个下拉列表：“数据库”和“表”。“数据库”下拉列表下方有一个磁贴，其中包含所选数据库名称。“表”下拉列表下方有一个磁贴，其中包含所选表名称。\]](http://docs.aws.amazon.com/zh_cn/lake-formation/latest/dg/images/grant-target-resources-tables-section-2.png)

1. 

**指定权限，不应用任何数据筛选。**

   在**权限**部分中，选择要授予的表权限，也可以选择可授予的权限。  
![\[表和列权限部分包含两个子部分：“表权限”和“可授予的权限”。每个子部分都有一个复选框，对应每种可能的 Lake Formation 权限：Alter、Insert、Drop、Delete、Select、Describe 和 Super。Super 权限位于其他权限的右侧，其描述为：“此权限允许主体向左侧授予任何权限，并取代这些可授予的权限。”\]](http://docs.aws.amazon.com/zh_cn/lake-formation/latest/dg/images/grant-table-permissions-section-no-filter.png)

   如果授予**选择**权限，则**数据权限**部分将显示在**表和列权限**部分下方，其中**所有数据访问**选项默认处于选中状态。接受默认设置。  
![\[该部分包含三个水平排列的磁贴，其中每个磁贴有一个选项按钮和描述。选项按钮包括“所有数据访问”（已选择）、“基于列的简单访问”和“高级单元格级筛选条件”。\]](http://docs.aws.amazon.com/zh_cn/lake-formation/latest/dg/images/grant-select-all-data-access.png)

1. 选择**授予**。

1. 

**通过数据筛选指定 **Select** 权限**

   选择 **Select** 权限。不要选择任何其他权限。

   **数据权限**部分将显示在**表和列权限**部分下方。

1. 请执行以下操作之一：
   + 仅应用简单列筛选。

     1. 选择**基于列的简单访问**。  
![\[顶部是“表和列权限”部分，如前面的屏幕截图所示。该部分包含表权限和可授予的权限对应的复选框。底部“数据权限”有三个水平排列的磁贴，其中每个磁贴有一个选项按钮和描述。选项按钮包括“所有数据访问”、“基于列的简单访问”和“高级单元格级筛选条件”。“基于列的简单访问”选项处于选中状态。磁贴下方是一个选项按钮组，其标签为“选择权限筛选条件”。选项包括“包括列”和“排除列”。选项组下方是“选择列”下拉列表，该下拉列表下方是“可授予的权限”子部分，其中包含一个标有“Select”的复选框。\]](http://docs.aws.amazon.com/zh_cn/lake-formation/latest/dg/images/grant-table-permissions-section-column-filter.png)

     1. 选择是包括还是排除列，然后选择要包括或排除的列。

        向外部 AWS 账户或组织授予权限时，仅支持包含列表。

     1. （可选）在**可授予的权限**下，开启“Select”权限的授予选项。

         如果包括授予选项，则授予接收人只能授予对您授予给他们的列的权限。
**注意**  
您也可以通过创建指定列筛选条件并将所有行指定为行筛选条件的数据筛选条件来应用列筛选。但是，这需要更多的步骤。
   + 应用列、行或单元格筛选。

     1. 选择**高级单元格级筛选条件**。  
![\[此部分标题为“数据权限”，位于“表权限”部分下方。它有三个水平排列的磁贴，其中每个磁贴有一个选项按钮和描述。选项按钮包括“所有数据访问”、“基于列的简单访问”和“高级单元格级筛选条件”。“高级单元格级筛选条件”选项处于选中状态。磁贴下方是“查看现有权限”标签，左侧有一个曝光三角形。现有权限不会显示出来。接着是标题为“要授予权限的数据筛选条件”的部分。标题右侧有三个按钮：“刷新”、“管理筛选条件”和“创建新筛选条件”。标题和按钮下方是一个文本字段，其中包含占位符文本“查找过滤器”。该文本字段下面是现有过滤条件的表。每行左侧都有一个复选框。列标题分别是“筛选条件名称”、“表”、“数据库” 和 “表目录 ID”。表中有两行。第一行中的筛选条件名称是 restrict-pharma。第二行中的筛选条件名称是 no-pharma。\]](http://docs.aws.amazon.com/zh_cn/lake-formation/latest/dg/images/grant-table-permissions-section-cell-filter.png)

     1. （可选）展开**查看现有权限**。

     1. （可选）选择**创建新筛选条件**。

     1. （可选）要查看列出的筛选条件的详细信息，或者要创建新筛选条件或删除现有筛选条件，请选择**管理筛选条件**。

        此时将在新的浏览器窗口中打开**数据筛选条件**页面。

        完成**数据筛选条件**页面上完成操作后，返回到**授予权限**页面，如有必要，请刷新该页面以查看创建的任何新的数据筛选条件。

     1. 选择一个或多个要应用于授予的数据筛选条件。
**注意**  
如果列表中没有数据筛选条件，则表示未为所选表创建任何数据筛选条件。

1. 选择**授权**。

------
#### [ AWS CLI ]

您可以使用命名资源方法和 AWS Command Line Interface (AWS CLI) 来授予表权限。

**要授予表权限，请使用 AWS CLI**
+ 运行 `grant-permissions` 命令并指定表作为资源。

**Example – 对单个表授予权限 - 无筛选**  
以下示例`ALTER`向 AWS 账户 1111-2222-3333 `datalake_user1` 中的用户授予数据库表上的`SELECT`和。`inventory` `retail`  

```
1. aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "SELECT" "ALTER" --resource '{ "Table": {"DatabaseName":"retail", "Name":"inventory"}}'
```
如果您授予对其基础数据位于注册位置的表的 `ALTER` 权限，请确保还向主体授予对该位置的数据位置权限。有关更多信息，请参阅 [授予数据位置权限](granting-location-permissions.md)。

**Example – 使用“授予”选项对所有表授予权限 - 无筛选**  
下一个示例使用授予选项授予对数据库 `retail` 中所有表的 `SELECT` 权限。  

```
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "SELECT" --permissions-with-grant-option "SELECT" --resource '{ "Table": { "DatabaseName": "retail", "TableWildcard": {} } }'
```<a name="simple-column-filter-example"></a>

**Example – 通过简单列筛选授予权限**  
下一个示例授予对表 `persons` 中一部分列的 `SELECT` 权限。它使用简单列筛选。  

```
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "SELECT" --resource '{ "TableWithColumns": {"DatabaseName":"hr", "Name":"persons", "ColumnNames":["family_name", "given_name", "gender"]}}'
```

**Example – 使用数据筛选条件授予权限**  
此示例授予对 `orders` 表的 `SELECT` 权限并应用 `restrict-pharma` 数据筛选条件。  

```
aws lakeformation grant-permissions --cli-input-json file://grant-params.json
```
以下是 `grant-params.json` 文件的内容。  

```
{
    "Principal": {"DataLakePrincipalIdentifier": "arn:aws:iam::111122223333:user/datalake_user1"},
    "Resource": {
        "DataCellsFilter": {
            "TableCatalogId": "111122223333",
            "DatabaseName": "sales",
            "TableName": "orders",
            "Name": "restrict-pharma"
        }
    },
    "Permissions": ["SELECT"],
    "PermissionsWithGrantOption": ["SELECT"]
}
```

------

**另请参阅**  
[Lake Formation 权限概述](lf-permissions-overview.md)
[Lake Formation 中的数据筛选和单元格级别安全性](data-filtering.md)
[Lake Formation 角色和 IAM 权限参考](permissions-reference.md)
 [授予资源链接权限](granting-link-permissions.md)
 [访问和查看共享数据目录表和数据库](viewing-shared-resources.md) 

# 使用命名资源方法授予对视图的权限
<a name="granting-view-permissions"></a>

以下步骤说明如何使用命名资源方法和**授予权限**页面来授予对视图的权限。该页面分为以下几个部分：
+  **委托人类型** — 要授予权限的 IAM 用户、角色、IAM Identity Center 用户和群组 AWS 账户、组织或组织单位。您还可向具有匹配属性的主体授予权限。
+  **LF 标签或目录资源** – 要对其授予权限的数据库、表、视图或资源链接。
+  **权限** – 要授予的数据湖权限。

## 打开**授予权限**页面
<a name="view-start-grant"></a>

1. 在打开 AWS Lake Formation 控制台 [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)，然后以数据湖管理员、数据库创建者或对数据库拥有**可授予权限**的 IAM 用户身份登录。

1. 请执行以下操作之一：
   + 在导航窗格的**权限**下，选择**数据权限**。然后选择**授予**。
   + 在导航窗格的**数据目录**下，选择**视图**。然后在**视图**页面上选择一个表，并在**操作**菜单的**权限**下选择**授予**。
**注意**  
您可以通过视图的资源链接授予对视图的权限。为此，在**视图**页面上选择一个资源链接，然后在**操作**菜单上选择**对目标的授权**。有关更多信息，请参阅 [资源链接在 Lake Formation 中的工作原理](resource-links-about.md)。

## 指定主体类型
<a name="views-specify-principals"></a>

 在**主体类型**部分，选择主体或按属性划分的主体。如果选择主体，则有以下选项可用：

**IAM 用户和角色**  
从 **IAM 用户和角色**列表中选择一个或多个用户或角色。

**IAM Identity Center **  
从**用户和组**列表中选择一个或多个用户或组。

**SAML 用户和组**  
对于 **SAML 和 Quick 用户和群组**，请为通过 SAML 联合的用户或群组或 Amazon Quick 用户或群组输入一个或多个 ARNs Amazon 资源名称 (ARNs)。在每个 ARN 后按 Enter。  
有关如何构造的信息 ARNs，请参见[Lake Formation 授予和撤销命令 AWS CLI](lf-permissions-reference.md#perm-command-format)。  
只有 Quick 企业版支持 Lake Formation 与 Quick 集成。

**外部账户**  
对于**AWS 账户 AWS 组织**或 **IAM 委托人**，请为 IAM 用户或角色输入一个或多个有效的 AWS 账户 IDs IDs IDs、组织、组织单位或 ARN。在每个 ID 后按 **Enter**。  
组织 ID 由“o-”后跟 10 到 32 个小写字母或数字组成。  
单位 ID 以“ou-”开头，后跟 4 到 32 个小写字母或数字（包含 OU 的根的 ID）。该字符串后跟第二个“-”短横线和 8 到 32 个额外的小写字母或数字。  
**另请参阅**  
+  [访问和查看共享数据目录表和数据库](viewing-shared-resources.md) 

**按属性划分的主体**  
指定属性键和值。如果选择多个值，则将使用 OR 运算符来创建属性表达式。这意味着，如果分配给 IAM 角色或用户的任何属性标签值匹配，则该角色或用户将 role/user 获得对资源的访问权限  
 通过指定您是向同一账户中具有匹配属性的主体，还是向另一个账户中具有匹配属性的主体授予权限来选择权限范围。

## 指定视图
<a name="view-specify-resources"></a>

在 **LF 标签或目录资源**部分中，选择一个或多个要对其授予权限的视图。

1. 选择**命名数据目录资源**。

1. 从**视图**列表中选择一个或多个视图。您还可以选择一个或多个目录、数据库、表格、 and/or 数据筛选器。

   向数据库内的 `All tables` 授予数据湖权限将导致被授权者具有对数据库内所有表和视图的权限。

## 指定权限
<a name="view-specify-permissions"></a>

在**权限**部分中，选择权限和可授予的权限。

![\[“权限”部分包含一组复选框，表示要授予的视图权限。这些复选框包括“Select”、“Describe”、“Drop”和“Super”。该组下方是另一组相同的复选框，代表可授予的权限。\]](http://docs.aws.amazon.com/zh_cn/lake-formation/latest/dg/images/view-permissions.png)


1. 在**视图权限**下，选择一项或多项要授予的权限。

1. （可选）在**可授予的权限**下，选择授予接收人可以向其 AWS 账户中的其他主体授予的权限。当您从外部账户向 IAM 委托人授予权限时，不支持此选项。

1. 选择**授予**。

**另请参阅**  
 [Lake Formation 权限参考](lf-permissions-reference.md) 
 [授予对与您的账户共享的数据库或表的权限](regranting-shared-resources.md) 