

 从补丁 198 开始，Amazon Redshift 将不再支持创建新的 Python UDF。现有的 Python UDF 将继续正常运行至 2026 年 6 月 30 日。有关更多信息，请参阅[博客文章](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)。

# 使用 Redshift 联合身份验证权限查询注册到 AWS Glue Data Catalog 中的目录
<a name="federated-permissions-querying"></a>

当您使用 Amazon Redshift 联合身份验证权限将 Amazon Redshift 数据仓库注册到 AWS Glue Data Catalog 时，该命名空间中的数据库将自动挂载到该 AWS 账户和区域中的所有 Amazon Redshift 实例上。这样便实现了跨多个仓库环境进行查询，同时通过全局身份和精细访问控制（FGAC）策略维护安全性。

## 先决条件
<a name="federated-permissions-querying-prereqs"></a>

在查询联合数据库之前，请确保您满足以下条件：
+ 附加到 IAM 用户或角色的 [AmazonRedshiftFederatedAuthorization](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRedshiftFederatedAuthorization.html) AWS 托管式策略。要获得细粒度的访问控制，您可以从此策略中授予特定的 IAM 操作，而不是附加完整的策略。
+ 为源数据仓库中的目录对象配置了适当的权限
+ 可访问位于同一 AWS 账户和区域中的 Amazon Redshift 数据仓库。

## 查询联合数据库
<a name="federated-permissions-querying-federated-db"></a>

您可以通过用于访问表的三部分语法，查询已注册目录下数据库中的对象：

```
database@namespace_catalog.schema.table
```

### 示例查询
<a name="federated-permissions-querying-sample-query"></a>

```
SELECT * FROM my_database@my_namespace.sales.transactions  
WHERE transaction_date >= '2024-01-01';
```

此外，您还可以通过 [USE database](https://docs.aws.amazon.com/redshift/latest/dg/r_USE_command.html) 访问联合数据库中的对象。

联合数据库也可通过[直接连接](https://docs.aws.amazon.com/redshift/latest/dg/database-direct-connect.html)访问。

## 安全性和访问控制
<a name="federated-permissions-querying-security"></a>

**全局身份和 FGAC 强制实施**

当您启用具有联合身份验证权限的 Amazon Redshift 数据仓库时，将在使用中的仓库内自动强制实施在这些对象上定义的授权和 FGAC 策略。这可确保多仓库环境中一致的安全性。

**支持的安全功能**

您可以对 Amazon Redshift 数据仓库中的对象配置以下安全控制措施，这些控制措施将对所有使用中的仓库强制实施
+ **列级别权限（CLP）**：授予或限制对特定列的访问权限
+ **行级别安全性（RLS）**：根据用户属性控制对特定行的访问权限
+ **动态数据掩蔽（DDM）**：根据用户权限自动掩蔽敏感数据