

# Babelfish for Aurora PostgreSQL でのアクセス許可とアクセスコントロールの管理
<a name="babelfish-permissions"></a>

 Babelfish for Aurora PostgreSQL では、データベース、スキーマ、オブジェクトのアクセス許可とアクセスコントロールを管理できます。次の表は、さまざまなアクセスコントロールのシナリオを達成するために、Babelfish でアクセス許可を付与するための特定の SQL コマンドの概要を示しています。サポートされている実装可能なユースケースと、現在サポートされていないケースの回避策について説明します。これにより、Babelfish データベースを使用する際のセキュリティおよびコンプライアンス要件を満たす適切なアクセス許可を設定できます。

## 対応するユースケース
<a name="babelfish-permissions-supported"></a>

 次の表は、Babelfish でサポートされているユースケースを示しています。各ユースケースについて、達成するために必要なアクションとサンプル SQL コマンドがテーブルに表示されています。


|  ユースケース  |  Action  |  SQL コマンド  |  コメント  |  Babelfish バージョンの互換性  | 
| --- | --- | --- | --- | --- | 
|  ログインして任意のデータベースで SELECT/DML/DDL を実行できるようにする  |  sysadmin サーバーロールにログインを追加する  |  ALTER SERVER ROLE sysadmin ADD MEMBER `login`  |  なし  |  すべてのバージョン  | 
|  ログインしてデータベースで SELECT/DML/DDL を実行できるようにする  |  ログインをデータベースの所有者にする  |  ALTER AUTHORIZATION ON DATABASE::`database` TO `login`  |  データベースの所有者は 1 人だけです。 |  バージョン 3.4 以降  | 
|  データベースユーザーにスキーマでの SELECT/DML の実行を許可する  |  スキーマのデータベースユーザーにアクセス許可を付与する  |  GRANT SELECT/EXECUTE/INSERT/UPDATE/DELETE ON SCHEMA::`schema` TO `user`  |  なし  |  バージョン 3.6 以降、4.2 以降  | 
|  データベースユーザーにスキーマでの SELECT/DML の実行を許可する  |  スキーマ作成時にデータベースユーザーをスキーマの所有者にする  |  CREATE SCHEMA `schema` AUTHORIZATION `user`  |  作成後のスキーマ所有者の変更は現在サポートされていません。 |  バージョン 1.2 以降  | 
|  データベースユーザーにオブジェクトに対する SELECT/DML の実行を許可する  |  オブジェクトのデータベースユーザーにアクセス許可を付与する  |  GRANT SELECT/EXECUTE/INSERT/UPDATE/DELETE ON OBJECT::`object` TO `user`  |  なし  |  すべてのバージョン  | 
|  データベースユーザーに、データベースの削除を含む、データベース内での SELECT/DML/DDL の実行を許可する  |  db\_owner 固定データベースロールにユーザーを追加する  |  ALTER ROLE db\_owner ADD MEMBER `user`  |  db\_owner 固定データベースロールを追加できるのはユーザーのみです。db\_owner ロールへのロールの追加はまだサポートされていません。 |  バージョン 4.5 以降、5.1 以降  | 
|  ユーザーまたはカスタムデータベースロールのメンバーに、データベース内の SELECT のみの実行を許可する  |  ユーザーまたはロールを db\_datareader 固定データベースロールに追加する  |  ALTER ROLE db\_datareader ADD MEMBER `user` / `role`  |  なし  |  バージョン 4.5 以降、5.1 以降  | 
|  ユーザーまたはカスタムデータベースロールのメンバーに、データベース内の DML のみの実行を許可する  |  ユーザーまたはロールを db\_datawriter 固定データベースロールに追加する  |  ALTER ROLE db\_datawriter ADD MEMBER `user` / `role`  |  なし  |  バージョン 4.5 以降、5.1 以降  | 
|  ユーザーまたはカスタムデータベースロールのメンバーに、データベース内の DDL のみの実行を許可する  |  db\_accessadmin 固定データベースロールにユーザーまたはロールを追加する  |  ALTER ROLE db\_accessadmin ADD MEMBER `user` / `role`  |  なし  |  バージョン 4.5 以降、5.1 以降  | 
|  ユーザーまたはカスタムデータベースロールのメンバーに、カスタムロールの CREATE/ALTER/DROP、データベース内のオブジェクトに対するアクセス許可の GRANT/REVOKE、データベース内の CREATE SCHEMA のみを許可します。 |  ユーザーまたはロールを db\_securityadmin 固定データベースロールに追加  |  ALTER ROLE db\_securityadmin ADD MEMBER `user` / `role`  |  なし  |  バージョン 4.5 以降、5.1 以降  | 
|  ユーザーまたはカスタムデータベースロールのメンバーに、任意のユーザーの CREATE/ALTER/DROP、データベースアクセスの許可と取り消し、ユーザーアカウントのログインへのマッピング、データベース内の CREATE SCHEMA のみを許可します。 |  db\_accessadmin 固定データベースロールにユーザーまたはロールを追加する  |  ALTER ROLE db\_accessadmin ADD MEMBER `user` / `role`  |  なし  |  バージョン 4.5 以降、5.1 以降  | 
|  ログインに任意のデータベースの CREATE/DROP/ALTER のみを許可する  |  dbcreator 固定サーバーロールにログインを追加する  |  ALTER SERVER ROLE dbcreator ADD MEMBER `login`  |  dbcreator ログインがアクセスできるデータベースのみを変更できます。 |  バージョン 4.5 以降、5.1 以降  | 
|  ログインに任意のログインの CREATE/ALTER/DROP のみを許可する  |  securityadmin 固定サーバーロールにログインを追加する  |  ALTER SERVER ROLE securityadmin ADD MEMBER `login`  |  なし  |  バージョン 4.5 以降、5.1 以降  | 

## サポートされていないユースケースと回避策
<a name="babelfish-permissions-unsupported"></a>

 次の表は、Babelfish ではサポートされていないものの、回避策を使用して達成できるユースケースを示しています。


|  ユースケース  |  Action  |  SQL コマンド  |  コメント  |  回避策のための Babelfish バージョンの互換性  | 
| --- | --- | --- | --- | --- | 
|  ユーザーにオブジェクト/スキーマに対する SELECT/DML の実行と、これらのアクセス許可を他のユーザーに "付与" するオプションを許可する  |  他のすべてのユーザーにアクセス許可を直接 "付与" する  |  GRANT SELECT/EXECUTE/INSERT/UPDATE/DELETE ON OBJECT/SCHEMA::`object`/`schema` TO `user`  |  GRANT ... WITH GRANT OPTION は現在サポートされていません。 |  バージョン 3.6 以降、4.2 以降  | 
|  データベースユーザーに、データベースの削除を含む、データベース内での SELECT/DML/DDL の実行を許可する  |  db\_owner 固定データベースロールにロールのメンバーを追加する  |  ALTER ROLE db\_owner ADD MEMBER `user`  |  db\_owner ロールへのロールの追加は現在サポートされていません。 |  バージョン 4.5 以降、5.1 以降  | 

## サポートされていないユースケース
<a name="babelfish-permissions-unsupported"></a>

 次の表は、Babelfish でサポートされていないユースケースを示しています。


|  ユースケース  |  コメント  | 
| --- | --- | 
| ユーザーまたはカスタムデータベースロールのメンバーに、データベース内の SELECT の実行を拒否する  |  db\_denydatareader 固定データベースロールはまだサポートされていません  | 
| ユーザーまたはカスタムデータベースロールのメンバーに、データベース内の DML の実行を拒否する  |  db\_denydatawriter 固定データベースロールは現在サポートされていません。 | 
| 任意のデータベース接続の KILL のみへのログインを許可する  |  processadmin 固定サーバーロールは現在サポートされていません。 | 
| リンクされたサーバーのみを追加または削除するためのログインを許可する  |  setupadmin 固定サーバーロールは現在サポートされていません。 | 