メニュー
Amazon Redshift
データベース開発者ガイド (API Version 2012-12-01)

ユーザーおよびグループのアクセス権限の管理例

この例では、ユーザーグループおよびユーザーアカウントを作成してから、ウェブアプリケーションクライアントに接続されている Amazon Redshift データベースに対する各種特権を、それらのユーザーグループおよびユーザーアカウントに付与します。この例では、3 つのユーザーグループが想定されています。ウェブアプリケーションの一般ユーザー、ウェブアプリケーションのパワーユーザー、およびウェブ開発者の 3 グループです。

  1. ユーザーアカウントに割り当てるグループを作成します。以下の一連のコマンドで、3 つのユーザーグループを作成します。

    Copy to clipboard
    create group webappusers; create group webpowerusers; create group webdevusers;
  2. 複数のデータベースユーザーアカウントを作成し、それぞれに異なる特権を付与してから、グループに追加します。

    1. 2 つのユーザーを作成し、それらを WEBAPPUSERS グループに追加します。

      Copy to clipboard
      create user webappuser1 password 'webAppuser1pass' in group webappusers; create user webappuser2 password 'webAppuser2pass' in group webappusers;
    2. ウェブ開発者のアカウントを作成し、それを WEBDEVUSERS グループに追加します。

      Copy to clipboard
      create user webdevuser1 password 'webDevuser2pass' in group webdevusers;
    3. スーパーユーザーアカウントを作成します。このユーザーには、他のユーザーを作成できる管理権限が与えられます。

      Copy to clipboard
      create user webappadmin password 'webAppadminpass1' createuser;
  3. スキーマを作成し、ウェブアプリケーションで使用されるデータベーステーブルに関連付けてから、そのスキーマに対するアクセス権限をさまざまなユーザーグループに付与します。

    1. WEBAPP スキーマを作成します。

      Copy to clipboard
      create schema webapp;
    2. WEBAPPUSERS グループに USAGE 特権を付与します。

      Copy to clipboard
      grant usage on schema webapp to group webappusers;
    3. WEBPOWERUSERS グループに USAGE 特権を付与します。

      Copy to clipboard
      grant usage on schema webapp to group webpowerusers;
    4. WEBDEVUSERS グループに ALL 特権を付与します。

      Copy to clipboard
      grant all on schema webapp to group webdevusers;

    これで、基本的なユーザーおよびグループがセットアップされました。ユーザーおよびグループを変更できるようになりました。

  4. 例えば、次のコマンドは、WEBAPPUSER1 の search_path パラメーターを変更します。

    Copy to clipboard
    alter user webappuser1 set search_path to webapp, public;

    SEARCH_PATH は、スキーマが指定されていない簡潔な名前でデータベースオブジェクト (テーブルや関数など) が参照されたときにスキーマを検索する順序を指定します。

  5. また、グループを作成した後で、ユーザーをグループに追加することもできます。例えば、次のように WEBAPPUSER2 を WEBPOWERUSERS グループに追加します。

    Copy to clipboard
    alter group webpowerusers add user webappuser2;