

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

# Lake Formation 权限参考
<a name="lf-permissions-reference"></a>

要执行 AWS Lake Formation 操作，委托人需要 Lake Formation 权限和 AWS Identity and Access Management (IAM) 权限。您通常使用粗粒度访问控制策略授予 IAM 权限，如 [Lake Formation 权限概述](lf-permissions-overview.md)中所述。**您可以使用控制台、API 或 AWS Command Line Interface (AWS CLI) 授予 Lake Formation 权限。

要了解如何授予或撤销 Lake Formation 权限，请参阅[授予对数据目录资源的权限](granting-catalog-permissions.md)和[授予数据位置权限](granting-location-permissions.md)。

**注意**  
本部分中的示例说明如何向同一 AWS 账户中的主体授予权限。有关跨账户授权的示例，请参阅 [Lake Formation 中的跨账户数据共享](cross-account-permissions.md)。

## 每种资源类型的 Lake Formation 权限
<a name="lf-resource-permissions-summary"></a>

以下是适用于每种资源类型的有效 Lake Formation 权限：

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/lake-formation/latest/dg/lf-permissions-reference.html)

**Topics**
+ [每种资源类型的 Lake Formation 权限](#lf-resource-permissions-summary)
+ [Lake Formation 授予和撤销命令 AWS CLI](#perm-command-format)
+ [Lake Formation 权限](#lf-permissions)

## Lake Formation 授予和撤销命令 AWS CLI
<a name="perm-command-format"></a>

本节中的每个权限描述都包括使用 AWS CLI 命令授予权限的示例。以下是 Lake Formation **grant-permissions** 和**revoke-permissions** AWS CLI 命令的提要。

```
grant-permissions
[--catalog-id <value>]
--principal <value>
--resource <value>
--permissions <value>
[--permissions-with-grant-option <value>]
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]
```

```
revoke-permissions
[--catalog-id <value>]
--principal <value>
--resource <value>
--permissions <value>
[--permissions-with-grant-option <value>]
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]
```

有关这些命令的详细说明，请参阅《AWS CLI 命令参考》中的 [grant-permissions](https://docs.aws.amazon.com/cli/latest/reference/lakeformation/grant-permissions.html) 和 [revoke-permissions](https://docs.aws.amazon.com/cli/latest/reference/lakeformation/revoke-permissions.html)。**本部分提供有关 `--principal` 选项的更多信息。

`--principal` 选项的值为以下值之一：
+ (IAM) 用户或角色的亚马逊资源名称 AWS Identity and Access Management (ARN)
+ 通过 SAML 提供商（例如 Microsoft Active Directory 联合身份验证服务 (AD FS) 进行身份验证的用户或组的 ARN
+ Amazon Quick 用户或群组的 ARN
+ 对于跨账户权限，需要 AWS 账户 ID、组织 ID 或组织单位 ID
+ 对于 IAM Identity Center 用户或组，IAM Identity Center 用户或组 ARN。

以下是所有 `--principal` 类型的语法和示例。

**主体为 IAM 用户**  
语法：  

```
--principal DataLakePrincipalIdentifier=arn:aws:iam::<account-id>:user/<user-name>
```
示例：  

```
--principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1
```

**主体为 IAM 角色**  
语法：  

```
--principal DataLakePrincipalIdentifier=arn:aws:iam::<account-id>:role/<role-name>
```
示例：  

```
--principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:role/workflowrole
```

**主体为通过 SAML 提供商进行身份验证的用户**  
语法：  

```
--principal DataLakePrincipalIdentifier=arn:aws:iam::<account-id>:saml-provider/<SAMLproviderName>:user/<user-name>
```
示例：  

```
--principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:saml-provider/idp1:user/datalake_user1
```

```
--principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:saml-provider/AthenaLakeFormationOkta:user/athena-user@example.com
```

**主体为通过 SAML 提供商进行身份验证的组**  
语法：  

```
--principal DataLakePrincipalIdentifier=arn:aws:iam::<account-id>:saml-provider/<SAMLproviderName>:group/<group-name> 
```
示例：  

```
--principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:saml-provider/idp1:group/data-scientists
```

```
--principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:saml-provider/AthenaLakeFormationOkta:group/my-group
```

**校长是 Amazon Quick 企业版用户**  
语法：  

```
--principal DataLakePrincipalIdentifier=arn:aws:quicksight:<region>:<account-id>:user/<namespace>/<user-name>
```
对于 *<namespace>*，您必须指定 `default`。
示例：  

```
--principal DataLakePrincipalIdentifier=arn:aws:quicksight:us-east-1:111122223333:user/default/bi_user1
```

**校长是 Amazon Quick 企业版群组**  
语法：  

```
--principal DataLakePrincipalIdentifier=arn:aws:quicksight:<region>:<account-id>:group/<namespace>/<group-name> 
```
对于 *<namespace>*，您必须指定 `default`。
示例：  

```
--principal DataLakePrincipalIdentifier=arn:aws:quicksight:us-east-1:111122223333:group/default/data_scientists
```

**本金是一个 AWS 账户**  
语法：  

```
--principal DataLakePrincipalIdentifier=<account-id>
```
示例：  

```
--principal DataLakePrincipalIdentifier=111122223333
```

**主体为组织**  
语法：  

```
--principal DataLakePrincipalIdentifier=arn:aws:organizations::<account-id>:organization/<organization-id>
```
示例：  

```
--principal DataLakePrincipalIdentifier=arn:aws:organizations::111122223333:organization/o-abcdefghijkl
```

**主体为组织单位**  
语法：  

```
--principal DataLakePrincipalIdentifier=arn:aws:organizations::<account-id>:ou/<organization-id>/<organizational-unit-id>
```
示例：  

```
--principal DataLakePrincipalIdentifier=arn:aws:organizations::111122223333:ou/o-abcdefghijkl/ou-ab00-cdefghij
```

**主体是 IAM Identity Center 身份用户或组**  
示例：用户  

```
--principal DataLakePrincipalIdentifier=arn:aws:identitystore:::user/<UserID>
```
示例：组  

```
--principal DataLakePrincipalIdentifier=arn:aws:identitystore:::group/<GroupID>
```

**主体是一个 IAM 组 - `IAMAllowedPrincipals`**  
Lake Formation 默认将数据目录中所有数据库和表的 `Super` 权限设置到名为 `IAMAllowedPrincipals` 的组。如果数据库或表上存在此组权限，则您账户中的所有主体都可以通过 AWS Glue的 IAM 主体策略访问该资源。当您开始使用 Lake Formation 权限来保护之前受 AWS Glue的 IAM 策略保护的数据目录资源时，可提供向后兼容性。  
使用 Lake Formation 管理数据目录资源的权限时，首先需要撤销资源上的 `IAMAllowedPrincipals` 权限，或将主体和资源选择为混合访问模式，这样 Lake Formation 权限才能生效。  
示例：  

```
--principal DataLakePrincipalIdentifier=IAM_Allowed_Principals
```

**主体是一个 IAM 组 - `ALLIAMPrincipals`**  
当您向 `ALLIAMPrincipals` 组授予对数据目录资源的权限时，账户中的每个主体都可以使用 Lake Formation 权限和 IAM 权限访问数据目录资源。  
示例：  

```
--principal DataLakePrincipalIdentifier=123456789012:IAMPrincipals
```

## Lake Formation 权限
<a name="lf-permissions"></a>

本部分包含您可以向主体授予的可用的 Lake Formation 权限。

### `ALTER`
<a name="perm-alter"></a>


| 权限 | 针对此项资源授予的权限 | 被授权者还需要 | 
| --- | --- | --- | 
| ALTER | DATABASE | glue:UpdateDatabase  | 
| ALTER | TABLE | glue:UpdateTable | 
| ALTER | LF-Tag | lakeformation:UpdateLFTag | 

具有此权限的主体可以更改数据目录中数据库或表的元数据。对于表，您可以更改列架构并添加列参数。您无法更改元数据表指向的基础数据中的列。

如果要更改的属性是已注册的 Amazon Simple Storage Service (Amazon S3) 位置，则主体必须对新位置具有数据位置权限。

**Example**  
以下示例向 AWS 账户 1111-2222-33 `datalake_user1` 33 `retail` 中的用户授予数据库`ALTER`权限。  

```
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "ALTER" --resource '{ "Database": {"Name":"retail"}}'
```

**Example**  
以下示例向用户 `datalake_user1` 授予对数据库 `retail` 中 `inventory` 表的 `ALTER` 权限。  

```
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "ALTER" --resource '{ "Table": {"DatabaseName":"retail", "Name":"inventory"}}'
```

### `CREATE_DATABASE`
<a name="perm-create-database"></a>


| 权限 | 针对此项资源授予的权限 | 被授权者还需要 | 
| --- | --- | --- | 
| CREATE\$1DATABASE | 数据目录 | glue:CreateDatabase | 

具有此权限的主体可以在数据目录中创建元数据数据库或资源链接。主体还可以在数据库中创建表。

**Example**  
以下示例`CREATE_DATABASE`向 AWS 账户 1111-2222-33 `datalake_user1` 33 中的用户授权。  

```
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "CREATE_DATABASE" --resource '{ "Catalog": {}}'
```

当主体在数据目录中创建数据库时，不会授予对基础数据的权限。将授予以下其他元数据权限（以及将这些权限授予其他人的能力）：
+ 数据库中的 `CREATE_TABLE`
+ `ALTER` 数据库
+ `DROP` 数据库

创建数据库时，主体可以选择指定一个 Amazon S3 位置。根据主体是否具有数据位置权限，`CREATE_DATABASE` 权限可能不足以在所有情况下创建数据库。请务必牢记以下三种情况。


| 创建数据库用例 | 所需权限 | 
| --- | --- | 
| 未指定位置属性。 | CREATE\$1DATABASE 已足够。 | 
| 指定了位置属性，并且该位置不由 Lake Formation 管理（未注册）。 | CREATE\$1DATABASE 已足够。 | 
| 指定了位置属性，并且该位置由 Lake Formation（已注册）管理。 | 需要 CREATE\$1DATABASE 以及指定位置的数据位置权限。 | 

### `CREATE_TABLE`
<a name="perm-create-table"></a>


| 权限 | 针对此项资源授予的权限 | 被授权者还需要 | 
| --- | --- | --- | 
| CREATE\$1TABLE | DATABASE | glue:CreateTable  | 

具有此权限的主体可以在指定数据库的数据目录中创建元数据表或资源链接。

**Example**  
以下示例授予用户使用 AWS 账户 1111-2222-3333 在`retail`数据库中创建表的`datalake_user1`权限。  

```
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 
 --permissions "CREATE_TABLE" --resource '{ "Database": {"Name":"retail"}}'
```

当某个主体在数据目录中创建表时，系统会将表上的所有 Lake Formation 权限授予给该主体，并且该主体能够将这些权限授予其他主体。

**跨账户授权**  
如果数据库拥有者账户向接收者账户授予 `CREATE_TABLE` 权限，并且该接收者账户中的用户在拥有者账户的数据库中成功创建了表，则以下规则适用：
+ 接收者账户中的用户和数据湖管理员具有对表的所有 Lake Formation 权限。他们可以将对表的权限授予给其账户中的其他主体；但无法向拥有者账户或任何其他账户中的主体授予权限。
+ 拥有者账户中的数据湖管理员可以向其账户中的其他主体授予对表的权限。

**数据位置权限**  
当您尝试创建指向 Amazon S3 位置的表时，根据您是否具有数据位置权限，`CREATE_TABLE` 权限可能不足以创建表。请务必牢记以下三种情况。


| 创建表格用例 | 所需权限 | 
| --- | --- | 
| 指定位置不受 Lake Formation 管理（未注册）。 | CREATE\$1TABLE 已足够。 | 
| 指定位置由 Lake Formation（已注册）管理，并且包含的数据库没有位置属性或具有不是表位置的 Amazon S3 前缀的位置属性。 | 需要 CREATE\$1TABLE 以及指定位置的数据位置权限。 | 
| 指定位置由 Lake Formation（已注册）管理，并且包含的数据库具有一个位置属性，该属性指向已注册的位置且是表位置的 Amazon S3 前缀。 | CREATE\$1TABLE 已足够。 | 

### `DATA_LOCATION_ACCESS`
<a name="perm-location"></a>


| 权限 | 针对此项资源授予的权限 | 被授权者还需要 | 
| --- | --- | --- | 
| DATA\$1LOCATION\$1ACCESS | Amazon S3 位置 | （Amazon S3 对位置的权限，必须由用于注册位置的角色指定。） | 

这是唯一的数据位置权限。具有此权限的主体可以创建指向指定 Amazon S3 位置的元数据数据库或表。必须注册该位置。对某个位置具有数据位置权限的主体也对子位置具有位置权限。

**Example**  
以下示例在 AWS 账户 1111-2222-3333 中向用户 `datalake_user1` 授予对 `s3://products/retail` 的数据位置权限。  

```
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "DATA_LOCATION_ACCESS" --resource '{ "DataLocation": {"ResourceArn":"arn:aws:s3:::products/retail"}}'
```

查询或更新基础数据不需要 `DATA_LOCATION_ACCESS` 权限。此权限仅适用于创建数据目录资源。

有关数据位置权限的更多信息，请参阅[Underlying data access control](access-control-underlying-data.md#data-location-permissions)。

### `DELETE`
<a name="perm-delete"></a>


| 权限 | 针对此项资源授予的权限 | 被授权者还需要 | 
| --- | --- | --- | 
| DELETE | TABLE | （如果注册了位置，则无需其他 IAM 权限。） | 

具有此权限的主体可以在表指定的 Amazon S3 位置插入、更新和读取基础数据。主体还可以在 Lake Formation 控制台上查看表，并使用 AWS Glue API 检索有关表的信息。

**Example**  
以下示例向 AWS 账户 1111-2222-33 `datalake_user1` 33 `inventory` 中的用户授予对数据库`retail`中表的`DELETE`权限。  

```
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "DELETE" --resource '{ "Table": {"DatabaseName":"retail", "Name":"inventory"}}'
```

此权限仅适用于 Amazon S3 中的数据，不适用于 Amazon Relational Database Service (Amazon RDS) 等其他数据存储中的数据。

### `DESCRIBE`
<a name="perm-describe"></a>


| 权限 | 针对此项资源授予的权限 | 被授权者还需要 | 
| --- | --- | --- | 
| DESCRIBE |  表资源链接 数据库资源链接  |  `glue:GetTable` `glue:GetDatabase`  | 
| DESCRIBE | DATABASE | glue:GetDatabase | 
| DESCRIBE | TABLE | glue:GetTable | 
| DESCRIBE | LF-Tag |  `glue:GetTable` `glue:GetDatabase` `lakeformation:GetResourceLFTags` `lakeformation:ListLFTags` `lakeformation:GetLFTag` `lakeformation:SearchTablesByLFTags` `lakeformation:SearchDatabasesByLFTags`  | 

具有此权限的主体可以查看指定的数据库、表或资源链接。不会隐式授予任何其他数据目录权限，也不会隐式授予任何数据访问权限。数据库和表显示在集成服务的查询编辑器中，但除非授予其他 Lake Formation 权限（例如 `SELECT`），否则无法对它们进行查询。

例如，对数据库具有 `DESCRIBE` 权限的用户可以查看数据库和所有数据库元数据（描述、位置等）。但是，用户无法找出数据库包含哪些表，也无法删除、更改或创建数据库中的表。同样，对表具有 `DESCRIBE` 权限的用户可以查看表和表元数据（描述、架构、位置等），但无法删除、更改或运行对表的查询。

以下是 `DESCRIBE` 的一些附加规则：
+ 如果用户对数据库、表或资源链接具有其他 Lake Formation 权限，则会隐式授予 `DESCRIBE` 权限。
+ 如果用户仅对表的列子集具有 `SELECT` 权限（部分 `SELECT`），则用户只能查看这些列。
+ 您无法向对表具有部分 SELECT 权限的用户授予 `DESCRIBE` 权限。反之，您无法为被授予了 `DESCRIBE` 权限的表指定列包含或排除列表。

**Example**  
以下示例向 AWS 账户 1111-2222-33 `datalake_user1` 33 中的用户授予对数据库`inventory-link``retail`中表资源链接的`DESCRIBE`权限。  

```
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "DESCRIBE" --resource '{ "Table": {"DatabaseName":"retail", "Name":"inventory-link"}}'
```

### `DROP`
<a name="perm-drop"></a>


| 权限 | 针对此项资源授予的权限 | 被授权者还需要 | 
| --- | --- | --- | 
| DROP | DATABASE | glue:DeleteDatabase | 
| DROP | TABLE | glue:DeleteTable  | 
| DROP | LF-Tag | lakeformation:DeleteLFTag  | 
| DROP |  数据库资源链接 表资源链接  | `glue:DeleteDatabase` `glue:DeleteTable`  | 

具有此权限的主体可以在数据目录中删除数据库、表或资源链接。您无法向外部账户或组织授予对数据库的 DROP 权限。

**警告**  
删除数据库会删除数据库中的所有表。

**Example**  
以下示例向 AWS 账户 1111-2222-33 `datalake_user1` 33 `retail` 中的用户授予数据库`DROP`权限。  

```
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "DROP" --resource '{ "Database": {"Name":"retail"}}'
```

**Example**  
以下示例向用户 `datalake_user1` 授予对数据库 `retail` 中 `inventory` 表的 `DROP` 权限。  

```
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "DROP" --resource '{ "Table": {"DatabaseName":"retail", "Name":"inventory"}}'
```

**Example**  
以下示例向用户 `datalake_user1` 授予对数据库 `retail` 中表资源链接 `inventory-link` 的 `DROP` 权限。  

```
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "DROP" --resource '{ "Table": {"DatabaseName":"retail", "Name":"inventory-link"}}'
```

### `INSERT`
<a name="perm-insert"></a>


| 权限 | 针对此项资源授予的权限 | 被授权者还需要 | 
| --- | --- | --- | 
| INSERT | TABLE | （如果注册了位置，则无需其他 IAM 权限。） | 

具有此权限的主体可以在表指定的 Amazon S3 位置插入、更新和读取基础数据。主体还可以在 Lake Formation 控制台中查看表，并使用 AWS Glue API 检索有关表的信息。

**Example**  
以下示例向 AWS 账户 1111-2222-33 `datalake_user1` 33 `inventory` 中的用户授予对数据库`retail`中表的`INSERT`权限。  

```
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "INSERT" --resource '{ "Table": {"DatabaseName":"retail", "Name":"inventory"}}'
```

此权限仅适用于 Amazon S3 中的数据，不适用于 Amazon RDS 等其他数据存储中的数据。

### `SELECT`
<a name="perm-select"></a>


| 权限 | 针对此项资源授予的权限 | 被授权者还需要 | 
| --- | --- | --- | 
| SELECT |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/lake-formation/latest/dg/lf-permissions-reference.html)  | （如果注册了位置，则无需其他 IAM 权限。） | 

具有此权限的主体可以查看数据目录中的表，并可以在表指定的位置查询 Amazon S3 中的基础数据。主体可以在 Lake Formation 控制台中查看表，并使用 AWS Glue API 检索有关表的信息。如果在授予此权限时应用了列筛选，则主体只能查看所包含列的元数据，并且只能从所包含的列中查询数据。

**注意**  
集成分析服务负责在处理查询时应用列筛选。

**Example**  
以下示例向 AWS 账户 1111-2222-33 `datalake_user1` 33 `inventory` 中的用户授予对数据库`retail`中表的`SELECT`权限。  

```
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "SELECT" --resource '{ "Table": {"DatabaseName":"retail", "Name":"inventory"}}'
```

此权限仅适用于 Amazon S3 中的数据，不适用于 Amazon RDS 等其他数据存储中的数据。

您可以使用可选的包含列表或排除列表来筛选特定列（限制访问权限）。包含列表指定可以访问的列。排除列表指定无法访问的列。如果没有包含列表或排除列表，则所有表列均可访问。

`glue:GetTable` 的结果仅返回调用方有权查看的列。Amazon Athena 和 Amazon Redshift 等集成服务支持列包含和排除列表。

**Example**  
以下示例使用包含列表向用户 `datalake_user1` 授予对表 `inventory` 的 `SELECT` 权限。  

```
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "SELECT"  --resource '{ "TableWithColumns": {"DatabaseName":"retail", "Name":"inventory", "ColumnNames": ["prodcode","location","period","withdrawals"]}}'
```

**Example**  
下一个示例使用排除列表授予对 `inventory` 表的 `SELECT` 权限。  

```
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "SELECT"  --resource '{ "TableWithColumns": {"DatabaseName":"retail", "Name":"inventory", "ColumnWildcard": {"ExcludedColumnNames": ["intkey", "prodcode"]}}}'
```

以下限制适用于 `SELECT` 权限：
+ 授予 `SELECT` 时，如果应用了列筛选，则不能包含授权选项。
+ 不能限制对作为分区键的列的访问控制。
+ 不能向对表中的列子集具有 `SELECT` 权限的主体授予对该表的 `ALTER`、`DROP`、`DELETE` 或 `INSERT` 权限。同样，不能通过列筛选向对表具有 `ALTER`、`DROP`、`DELETE` 或 `INSERT` 权限的主体授予 `SELECT` 权限。

`SELECT` 权限始终作为单独的行显示在 Lake Formation 控制台的**数据权限**页面上。下图显示向用户 `datalake_user2` 和 `datalake_user3` 授予对 `inventory` 表中所有列的 `SELECT` 权限。

![\[数据权限页面显示四行。第一行和第三行列出了资源类型为 Table 的 Delete 和 Insert 权限，资源显示为 inventory；第二行和第四行列出了资源类型为 Column 的 Select 权限，同时资源显示为 retail.inventory.*。\]](http://docs.aws.amazon.com/zh_cn/lake-formation/latest/dg/images/data-permissions-dialog-select-cross.png)


### `Super`
<a name="perm-super"></a>


| 权限 | 针对此项资源授予的权限 | 被授权者还需要 | 
| --- | --- | --- | 
| Super | DATABASE | glue:\$1Database\$1  | 
| Super | TABLE | glue:\$1Table\$1, glue:\$1Partition\$1 | 

此权限允许主体对数据库或表执行所有支持的 Lake Formation 操作。您无法向外部账户授予对数据库的 `Super` 权限。

此权限可以与其他 Lake Formation 权限共存。例如，您可以授予对元数据表的 `Super`、`SELECT`、和 `INSERT` 权限。然后，主体可以对表执行所有受支持的操作。撤销 `Super` 后，`SELECT` 和 `INSERT` 权限将保留，且主体只能执行 select 和 insert 操作。

您可以将 `Super` 授予组 `IAMAllowedPrincipals`，而不是将其授予单个主体。`IAMAllowedPrincipals` 组是自动创建的，其中包括 IAM 策略允许访问数据目录资源的所有 IAM 用户和角色。当向 `IAMAllowedPrincipals` 授予对数据目录资源的 `Super` 权限时，对该资源的访问实际上完全由 IAM 策略控制。

通过利用 Lake Formation 控制台的**设置**页面上的选项，可以自动向 `IAMAllowedPrincipals` 授予对新目录资源的 `Super` 权限。

![\[“数据目录设置”对话框的副标题为“新创建的数据库和表的默认权限”，并具有两个复选框，如文本中所述。\]](http://docs.aws.amazon.com/zh_cn/lake-formation/latest/dg/images/settings-page.png)

+ 要向 `IAMAllowedPrincipals` 授予对所有新数据数据库的 `Super` 权限，请选择**仅对新数据库使用 IAM 访问控制**。
+ 要向 `IAMAllowedPrincipals` 授予对新数据数据库中所有新表的 `Super` 权限，请选择**仅对新数据库中的新表使用 IAM 访问控制**。
**注意**  
此选项会导致默认情况下选中**创建数据库**对话框中的**仅对此数据库中的新表使用 IAM 访问控制**复选框。它的作用仅此而已。它是**创建数据库**对话框中的复选框，用于向 `IAMAllowedPrincipals` 授予 `Super` 权限。

默认情况下，将启用这些**设置**页面选项。有关更多信息，请参阅下列内容：
+ [更改数据湖的默认设置](change-settings.md)
+ [升级 AWS Lake Formation 模型AWS Glue的数据权限](upgrade-glue-lake-formation.md)

### `SUPER_USER`
<a name="perm-super-user"></a>


| 权限 | 针对此项资源授予的权限 | 被授权者还需要 | 
| --- | --- | --- | 
| Super user | Catalog | glue:GetCatalog  | 

您只能向默认 Data Catalog 中目录的特定主体授予 `Super user` 权限。您不能对默认目录或其他资源类型（例如数据库和表）的授予 `Super user` 权限，也不能向外部账户中的主体授予该权限。`Super user` 权限使主体能够对已授权目录中的数据库和表执行所有支持的 Lake Formation 操作。

获得 `Super user` 权限后，主体（被授权者）可以对目录中的资源（目录、数据库和表）执行以下操作：
+ 对目录的 `CREATE_DATABASE`、`DESCRIBE` 权限。
+ 对目录中所有数据库的 `DROP`、`ALTER`、`CREATE_TABLE`、`DESCRIBE`（实际上是 `SUPER`）权限。
+ 对目录中所有数据库中的所有表的 `DROP`、`ALTER`、`DESCRIBE`、`SELECT`、`INSERT`、`DELETE`（实际上是 `SUPER`）权限。
+ 对目录中的目录的 `All`（实际上是 SUPER）权限。
+ 对目录中的所有目录、数据库和表的可授予权限（能够向其他主体授予这些权限）。

获得目录资源的 `Super user` 权限后，不允许被授权者对目录执行或委托执行 `ALTER` 和 `DROP` 操作。

### `ASSOCIATE`
<a name="perm-associate"></a>


| 权限 | 针对此项资源授予的权限 | 被授权者还需要 | 
| --- | --- | --- | 
| ASSOCIATE | LF-Tag |   `glue:GetDatabase` `glue:GetTable`  `lakeformation:AddLFTagsToResource"` `lakeformation:RemoveLFTagsFromResource"` `lakeformation:GetResourceLFTags` `lakeformation:ListLFTags` `lakeformation:GetLFTag` `lakeformation:SearchTablesByLFTags` `lakeformation:SearchDatabasesByLFTags`  | 

对 LF 标签具有此权限的主体可以将 LF 标签分配给数据目录资源。授予 `ASSOCIATE` 会隐式授予 `DESCRIBE` 权限。

**Example**  
此示例向用户 `datalake_user1` 授予对带有键 `module` 的 LF 标签的 `ASSOCIATE` 权限。它授予查看和分配该键的所有值的权限，如星号 (\$1) 所示。  

```
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "ASSOCIATE" --resource '{ "LFTag": {"CatalogId":"111122223333","TagKey":"module","TagValues":["*"]}}'
```