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

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

この例では、ユーザーグループとユーザーを作成した上で、ウェブアプリケーションクライアントに接続する Amazon Redshift データベースへのさまざまなアクセス許可を付与しています。この例では、3 つのユーザーグループが想定されています。ウェブアプリケーションの一般ユーザー、ウェブアプリケーションのパワーユーザー、およびウェブ開発者の 3 グループです。

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

    create group webappusers; create group webpowerusers; create group webdevusers;
  2. 複数のデータベースユーザーを作成し、それぞれに異なるアクセス許可を付与した上で、グループに追加します。

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

      create user webappuser1 password 'webAppuser1pass' in group webappusers; create user webappuser2 password 'webAppuser2pass' in group webappusers;
    2. ウェブデベロッパーユーザーを作成して WEBDEVUSERS グループに追加します。

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

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

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

      create schema webapp;
    2. WEBAPPUSERS グループに USAGE のアクセス許可を付与します。

      grant usage on schema webapp to group webappusers;
    3. WEBPOWERUSERS グループに USAGE のアクセス許可を付与します。

      grant usage on schema webapp to group webpowerusers;
    4. WEBDEVUSERS グループに ALL のアクセス許可を付与します。

      grant all on schema webapp to group webdevusers;

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

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

    alter user webappuser1 set search_path to webapp, public;

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

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

    alter group webpowerusers add user webappuser2;