Resource link handling in AWS Glue
APIs
The following tables explain how the AWS Glue Data Catalog APIs handle database and table resource
links. For all Get*
API operations, only databases and tables that the caller has
permissions on get returned. Also, when accessing a target database or table through a
resource link, you must have both AWS Identity and Access Management (IAM) and Lake Formation permissions on both the target
and the resource link. The Lake Formation permission that is required on resource links is
DESCRIBE
. For more information, see DESCRIBE.
Database API operations
API operation |
Resource link handling |
CreateDatabase |
If the database is a resource link, creates the resource link to the designated
target database. |
UpdateDatabase |
If the designated database is a resource link, follows the link and updates the
target database. If the resource link must be modified to link to a different
database, you must delete it and create a new one. |
DeleteDatabase |
Deletes the resource link. It doesn't delete the linked (target)
database. |
GetDatabase |
If the caller has permissions on the target, follows the link to return the
target's properties. Otherwise, it returns the properties of the link. |
GetDatabases |
Returns a list of databases, including resource links. For each resource link in
the result set, the operation follows the link to get the properties of the link
target. You must specify ResourceShareType = ALL to see the
databases shared with your account. |
Table API operations
API operation |
Resource link handling |
CreateTable |
If the database is a resource link, follows the database link and creates a table
in the target database. If the table is a resource link, the operation creates the
resource link in the designated database. Creating a table resource link through a
database resource link is not supported. |
UpdateTable |
If either the table or designated database is a resource link, updates the target
table. If both the table and database are resource links, the operation fails. |
DeleteTable |
If the designated database is a resource link, follows the link and deletes the
table or table resource link in the target database. If the table is a resource link,
the operation deletes the table resource link in the designated database. Deleting a
table resource link does not delete the target table. |
BatchDeleteTable |
Same as DeleteTable . |
GetTable |
If the designated database is a resource link, follows the database link and
returns the table or table resource link from the target database. Otherwise, if the
table is a resource link, the operation follows the link and returns the target table
properties. |
GetTables |
If the designated database is a resource link, follows the database link and
returns the tables and table resource links from the target database. If the target
database is a shared database from another AWS account, the operation returns only
the shared tables in that database. It doesn't follow the table resource links in the
target database. Otherwise, if the designated database is a local (owned) database,
the operation returns all the tables in the local database, and follows each table
resource link to return target table properties. |
SearchTables |
Returns tables and table resource links. It doesn't follow links to return target
table properties. You must specify ResourceShareType = ALL
to see tables shared with your account. |
GetTableVersion |
Same as GetTable . |
GetTableVersions |
Same as GetTable . |
DeleteTableVersion |
Same as DeleteTable . |
BatchDeleteTableVersion |
Same as DeleteTable . |
Partition API operations
API operation |
Resource link handling |
CreatePartition |
If the designated database is a resource link, follows the database link and
creates a partition in the designated table in the target database. If the table is a
resource link, the operation follows the resource link and creates the partition in
the target table. Creating a partition through both a table resource link and database
resource link is not supported. |
BatchCreatePartition |
Same as CreatePartition . |
UpdatePartition |
If the designated database is a resource link, follows the database link and
updates the partition in the designated table in the target database. If the table is
a resource link, the operation follows the resource link and updates the partition in
the target table. Updating a partition through both a table resource link and database
resource link is not supported. |
DeletePartition |
If the designated database is a resource link, follows the database link and
deletes the partition in the designated table in the target database. If the table is
a resource link, the operation follows the resource link and deletes the partition in
the target table. Deleting a partition through both a table resource link and database
resource link is not supported. |
BatchDeletePartition |
Same as DeletePartition . |
GetPartition |
If the designated database is a resource link, follows the database link and
returns partition information from the designated table. Otherwise, if the table is a
resource link, the operation follows the link and returns partition information. If
both the table and database are resource links, it returns an empty result
set. |
GetPartitions |
If the designated database is a resource link, follows the database link and
returns partition information for all partitions in the designated table. Otherwise,
if the table is a resource link, the operation follows the link and returns partition
information. If both the table and database are resource links, it returns an empty
result set. |
BatchGetPartition |
Same as GetPartition . |
User-defined functions API operations
API operation |
Resource Link Handling |
(All API operations) |
If the database is a resource link, follows the resource link and performs the
operation on the target database. |