

 Amazon Redshift は、パッチ 198 以降、新しい 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/)を参照してください。

# メタデータセキュリティ
<a name="t_metadata_security"></a>

Amazon Redshift の行レベルのセキュリティと同様に、メタデータセキュリティではメタデータをよりきめ細かく制御できます。プロビジョニングされたクラスターまたはサーバーレスワークグループでメタデータセキュリティが有効になっている場合、ユーザーは、表示アクセス権のあるオブジェクトのメタデータを表示できます。メタデータセキュリティにより、必要に応じて可視性を分離できます。例えば、1 つのデータウェアハウスを使用してすべてのデータストレージを一元化できます。ただし、複数のセクターのデータを保存すると、セキュリティ管理が難しくなる可能性があります。メタデータセキュリティを有効にすると、可視性を設定できます。あるセクターのユーザーにはオブジェクトの可視性を高め、別のセクターのユーザーには表示アクセスを制限することができます。メタデータセキュリティは、スキーマ、テーブル、ビュー、マテリアライズドビュー、ストアドプロシージャ、ユーザー定義機能、および機械学習モデルなどのすべてのオブジェクトタイプをサポートしています。

ユーザーは、次の状況でオブジェクトのメタデータを表示できます。
+ オブジェクトへのアクセスがユーザーに許可されている場合。
+ ユーザーが所属するグループまたはロールにオブジェクトアクセスが付与されている場合。
+ オブジェクトが公開されている場合。
+ ユーザーがデータベースオブジェクトの所有者である場合。

メタデータセキュリティを有効にするには、[ALTER SYSTEM](https://docs.aws.amazon.com/redshift/latest/dg/r_ALTER_SYSTEM.html) コマンドを使用します。ALTER SYSTEM コマンドをメタデータセキュリティで使用する方法の構文は次のとおりです。

```
ALTER SYSTEM SET metadata_security=[true|t|on|false|f|off];
```

メタデータセキュリティを有効にすると、必要なアクセス許可を持つすべてのユーザーが、アクセス権を持つオブジェクトの関連メタデータを表示できます。特定のユーザーだけがメタデータセキュリティを表示できるようにするには、`ACCESS CATALOG` アクセス許可をロールに付与し、そのロールをそのユーザーに割り当てます。ロールを使用してセキュリティコントロールを改善する方法の詳細については、「[ロールベースのアクセスコントロール](https://docs.aws.amazon.com/redshift/latest/dg/t_Roles.html)」を参照してください。

次の例は、ロールに `ACCESS CATALOG` アクセス許可を付与し、そのロールをユーザーに割り当てる方法を示しています。アクセス許可の付与の詳細については、[GRANT](https://docs.aws.amazon.com/redshift/latest/dg/r_GRANT.html) コマンドを参照してください。

```
CREATE ROLE sample_metadata_viewer;

GRANT ACCESS CATALOG TO ROLE sample_metadata_viewer;

GRANT ROLE sample_metadata_viewer to salesadmin;
```

すでに定義されているロールを使用する場合は、[システム定義ロール](https://docs.aws.amazon.com/redshift/latest/dg/r_roles-default.html) `operator`、`secadmin`、`dba`、および `superuser` のすべてに、オブジェクトメタデータを表示するために必要なアクセス許可が付与されます。デフォルトでは、スーパーユーザーはカタログ全体を表示できます。

```
GRANT ROLE operator to sample_user;
```

ロールを使用してメタデータセキュリティをコントロールしている場合、ロールベースのアクセスコントロールに付属するすべてのシステムビューと機能にアクセスできます。例えば、[SVV\$1ROLES](https://docs.aws.amazon.com/redshift/latest/dg/r_SVV_ROLES.html) ビューをクエリして、すべてのロールを表示できます。ユーザーがロールまたはグループのメンバーかどうかを確認するには、[USER\$1IS\$1MEMBER\$1OF](https://docs.aws.amazon.com/redshift/latest/dg/r_USER_IS_MEMBER_OF.html) 関数を使用します。SVV ビューの完全なリストについては、「[SVV メタデータビュー](https://docs.aws.amazon.com/redshift/latest/dg/svv_views.html)」を参照してください。システム情報関数の一覧については、「[システム情報関数](https://docs.aws.amazon.com/redshift/latest/dg/r_System_information_functions.html)」を参照してください。