ユーザーおよびグループのアクセス権限の管理例
この例では、ユーザーグループとユーザーを作成した上で、ウェブアプリケーションクライアントに接続する Amazon Redshift データベースへのさまざまなアクセス許可を付与しています。この例では、3 つのユーザーグループが想定されています。ウェブアプリケーションの一般ユーザー、ウェブアプリケーションのパワーユーザー、およびウェブ開発者の 3 グループです。
-
ユーザーを割り当てるグループを作成します。以下の一連のコマンドで、3 つのユーザーグループを作成します。
create group webappusers; create group webpowerusers; create group webdevusers;
-
複数のデータベースユーザーを作成し、それぞれに異なるアクセス許可を付与した上で、グループに追加します。
-
2 つのユーザーを作成し、それらを WEBAPPUSERS グループに追加します。
create user webappuser1 password 'webAppuser1pass' in group webappusers; create user webappuser2 password 'webAppuser2pass' in group webappusers;
-
ウェブデベロッパーユーザーを作成して WEBDEVUSERS グループに追加します。
create user webdevuser1 password 'webDevuser2pass' in group webdevusers;
-
スーパーユーザーを作成します。このユーザーには、他のユーザーを作成できる管理権限が与えられます。
create user webappadmin password 'webAppadminpass1' createuser;
-
-
スキーマを作成し、ウェブアプリケーションで使用されるデータベーステーブルに関連付けてから、そのスキーマに対するアクセス権限をさまざまなユーザーグループに付与します。
-
WEBAPP スキーマを作成します。
create schema webapp;
-
WEBAPPUSERS グループに USAGE のアクセス許可を付与します。
grant usage on schema webapp to group webappusers;
-
WEBPOWERUSERS グループに USAGE のアクセス許可を付与します。
grant usage on schema webapp to group webpowerusers;
-
WEBDEVUSERS グループに ALL のアクセス許可を付与します。
grant all on schema webapp to group webdevusers;
これで、基本的なユーザーおよびグループがセットアップされました。ユーザーおよびグループを変更できるようになりました。
-
-
例えば、次のコマンドは、WEBAPPUSER1 の search_path パラメータを変更します。
alter user webappuser1 set search_path to webapp, public;
SEARCH_PATH は、スキーマが指定されていない簡潔な名前でデータベースオブジェクト (テーブルや関数など) が参照されたときにスキーマを検索する順序を指定します。
-
また、グループを作成した後で、ユーザーをグループに追加することもできます。例えば、次のように WEBAPPUSER2 を WEBPOWERUSERS グループに追加します。
alter group webpowerusers add user webappuser2;