사용자 및 그룹 액세스 제어 예 - Amazon Redshift

사용자 및 그룹 액세스 제어 예

이 예는 사용자 그룹과 사용자를 만든 다음 이들에게 웹 애플리케이션 클라이언트에 연결되는 Amazon Redshift 데이터베이스에 대한 권한을 부여합니다. 이 예에서는 웹 애플리케이션 일반 사용자, 웹 애플리케이션 파워 유저, 웹 개발자 등 세 가지 사용자 그룹을 가정합니다.

  1. 사용자가 할당될 그룹을 만듭니다. 다음 명령 세트는 세 가지 사용자 그룹을 만듭니다.

    create group webappusers; create group webpowerusers; create group webdevusers;
  2. 권한이 서로 다른 몇몇 데이터베이스 사용자를 만들어 그룹에 추가합니다.

    1. 두 명의 사용자를 만들어 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;