Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅
中国的 Amazon Web Services 服务入门
(PDF)。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
设置 Amazon Redshift 数据共享权限
本主题介绍接受数据共享邀请、创建联合数据库和授予权限所需执行的步骤。您可以使用 Lake Formation 控制台或 Amazon Command Line Interface (Amazon CLI)。本主题中的示例显示了同一个账户中的制作者集群、数据目录和数据使用者。
要了解有关 Lake Formation 跨账户功能的更多信息,请参阅Lake Formation 中的跨账户数据共享。
设置数据共享权限
查看数据共享邀请并接受。
- Console
-
-
通过 https://console.aws.amazon.com/lakeformation/ 以数据湖管理员的身份登录 Lake Formation 控制台。导航到数据共享页面。
-
查看已授权您访问的数据共享。状态列表示您当前参与数据共享的状态。待处理状态表示您已被添加到数据共享,但尚未接受或已拒绝邀请。
-
要响应数据共享邀请,请选择数据共享名称,然后选择查看邀请。在接受或拒绝数据共享中,查看邀请详细信息。选择接受接受邀请,或选择拒绝拒绝邀请。如果您拒绝邀请,就无法访问数据共享。
- Amazon CLI
-
以下示例显示如何查看、接受和注册邀请。将 Amazon Web Services 账户 ID 替换为有效的 Amazon Web Services 账户 ID。将 data-share-arn
替换为引用数据共享的实际 Amazon 资源名称 (ARN)。
-
查看待处理的邀请。
aws redshift describe-data-shares \
--data-share-arn 'arn:aws:redshift:us-east-1:111122223333:datashare:abcd1234-1234-ab12-cd34-1a2b3c4d5e6f/federatedds' \
-
接受数据共享。
aws redshift associate-data-share-consumer \
--data-share-arn 'arn:aws:redshift:us-east-1:111122223333:datashare:abcd1234-1234-ab12-cd34-1a2b3c4d5e6f/federatedds' \
--consumer-arn 'arn:aws:glue:us-east-1:111122223333:catalog
-
在 Lake Formation 账户中注册数据共享。使用 RegisterResource API 操作在 Lake Formation 中注册数据共享。DataShareArn
是 ResourceArn
的输入参数。
aws lakeformation register-resource \
--resource-arn 'arn:aws:redshift:us-east-1:111122223333:datashare:abcd1234-1234-ab12-cd34-1a2b3c4d5e6f/federatedds'
-
创建数据库。
接受数据共享邀请后,您需要创建一个指向与数据共享关联的 Amazon Redshift 数据库的数据库。您必须是数据湖管理员才能创建数据库。
- Console
-
-
从邀请窗格中选择数据共享,然后选择设置数据库详细信息。
-
在设置数据库详细信息中,输入数据共享的唯一名称和标识符。使用此标识符可在元数据层次结构(dbName.schema.table)中对数据共享进行内部映射。
-
选择下一步,向其他用户授予对共享数据库和表的权限。
- Amazon CLI
-
在 Amazon CLI 中使用以下示例代码创建指向与 Lake Formation 共享的 Amazon Redshift 数据库的数据库。
aws glue create-database --cli-input-json \
'{
"CatalogId": "111122223333",
"DatabaseInput": {
"Name": "tahoedb",
"FederatedDatabase": {
"Identifier": "arn:aws:redshift:us-east-1:111122223333:datashare:abcd1234-1234-ab12-cd34-1a2b3c4d5e6f/federatedds",
"ConnectionName": "aws:redshift"
}
}
}'
-
授予权限
创建数据库后,可以向账户中的用户或外部 Amazon Web Services 账户和组织授予权限。您将无法针对映射到 Amazon Redshift 数据共享的联合数据库授予写入数据权限(插入、删除)和元数据权限(更改、删除、创建)。有关授予权限的更多信息,请参阅管理 Lake Formation 权限。
作为数据湖管理员,您只能查看联合数据库中的表。要执行任何其它操作,您都需要授予自己对这些表的更多权限。
- Console
-
-
在授予权限屏幕上,选择要向其授予权限的用户。
-
选择授权。
- Amazon CLI
-
在 Amazon CLI 中使用以下示例通过以下方式授予数据库和表权限:
aws lakeformation grant-permissions --input-cli-json file://input.json
{
"Principal": {
"DataLakePrincipalIdentifier": "arn:aws:iam::111122223333:user/non-admin"
},
"Resource": {
"Database": {
"CatalogId": "111122223333",
"Name": "tahoedb"
}
},
"Permissions": [
"DESCRIBE"
],
"PermissionsWithGrantOption": [
]
}
aws lakeformation grant-permissions --input-cli-json file://input.json
{
"Principal": {
"DataLakePrincipalIdentifier": "arn:aws:iam::111122223333:user/non-admin"
},
"Resource": {
"Table": {
"CatalogId": "111122223333",
"DatabaseName": "tahoedb",
"Name": "public.customer"
}
},
"Permissions": [
"SELECT"
],
"PermissionsWithGrantOption": [
"SELECT"
]
}