

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

# 授予对与您的账户共享的数据库或表的权限
<a name="regranting-shared-resources"></a>

将属于另一个 AWS 账户的数据目录资源与您的 AWS 账户共享后，作为数据湖管理员，您可以向账户中的其他委托人授予共享资源的权限。但是，您不能向其他 AWS 账户或组织授予对该资源的权限。

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

**授予对共享数据库的权限（命名资源方法、控制台）**
+ 按照[使用命名资源方法授予数据库权限](granting-database-permissions.md)中的说明进行操作。在 **LF 标签或目录资源**下的**数据库**列表中，确保选择的是外部账户中的数据库，而不是数据库的资源链接。

  如果您在数据库列表中看不到该数据库，请确保您已接受关于该数据库的 AWS Resource Access Manager (AWS RAM) 资源共享邀请。有关更多信息，请参阅 [接受来自的资源共享邀请 AWS RAM](accepting-ram-invite.md)。

  另外，对于 `CREATE_TABLE` 和 `ALTER` 权限，请按照[授予数据位置权限（同一账户）](granting-location-permissions-local.md)中的说明进行操作，并确保在**注册账户位置**字段中输入所有者账户 ID。

**授予对共享表的权限（命名资源方法、控制台）**
+ 按照[使用命名资源方法授予表权限](granting-table-permissions.md)中的说明进行操作。在 **LF 标签或目录资源**下的**数据库**列表中，确保选择的是外部账户中的数据库，而不是数据库的资源链接。

  如果您在表列表中看不到该表，请确保您已接受关于该表的 AWS RAM 资源共享邀请。有关更多信息，请参阅 [接受来自的资源共享邀请 AWS RAM](accepting-ram-invite.md)。

  另外，对于 `ALTER` 权限，请按照[授予数据位置权限（同一账户）](granting-location-permissions-local.md)中的说明进行操作，并确保在**注册账户位置**字段中输入所有者账户 ID。

**授予对共享资源的权限（LF-TBAC 方法、控制台）**
+ 按照[授予数据目录权限](granting-catalog-perms-TBAC.md#granting-cat-perms-TBAC-console)中的说明进行操作。在 **LF 标签或目录资源**部分，授予外部账户向您的账户授予的精确 LF 标签表达式或该表达式的子集。

  例如，如果外部账户使用授权选项向您的账户授予了 LF 标签表达式 `module=customers AND environment=production`，则作为数据湖管理员，您可以向您账户中的主体授予相同的表达式，即 `module=customers` 或 `environment=production`。您只能授予通过 LF 标签表达式授予的对资源的相同或部分 Lake Formation 权限（例如 `SELECT`、`ALTER` 等）。

**要授予共享表（命名为资源方法 AWS CLI）的权限**
+ 输入类似以下的命令。在本示例中：
  + 你的 AWS 账户编号是 1111-2222-3333。
  + 拥有该表并将其授予您的账户的账户是 1234-5678-9012。
  + 正在向用户 `datalake_user1` 授予对共享表 `pageviews` 的 `SELECT` 权限。该用户是您账户中的主体。
  + `pageviews` 表位于 `analytics` 数据库中，该数据库归账户 1234-5678-9012 所有。

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

  请注意，必须在 `resource` 参数的 `CatalogId` 属性中指定所有者账户。