

 Amazon Redshift는 패치 198부터 새 Python UDF 생성을 더 이상 지원하지 않습니다. 기존 Python UDF는 2026년 6월 30일까지 계속 작동합니다. 자세한 내용은 [블로그 게시물](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)을 참조하세요.

# 그룹
<a name="r_Groups"></a>

그룹은 그룹에 연결된 어떤 권한이건 모두 부여되는 사용자들의 모음입니다. 그룹을 사용하여 권한을 부여할 수 있습니다. 예를 들어 영업, 관리, 지원을 위한 다양한 그룹을 생성하여 각 그룹의 사용자에게 업무에 필요한 데이터에 액세스할 수 있는 적절한 권한을 부여할 수 있습니다. 그룹 수준에서 권한을 부여하거나 취소할 수 있으며, 이러한 변경 사항은 슈퍼 사용자를 제외한 그룹의 모든 구성원에게 적용됩니다.

모든 사용자 그룹을 보려면 PG\$1GROUP 시스템 카탈로그 테이블을 쿼리합니다.

```
select * from pg_group;
```

예를 들어 모든 데이터베이스 사용자를 그룹별로 나열하려면 다음 SQL을 실행합니다.

```
SELECT u.usesysid
,g.groname
,u.usename
FROM pg_user u
LEFT JOIN pg_group g ON u.usesysid = ANY (g.grolist)
```

# 그룹 생성, 변경 및 삭제
<a name="r_Groups-creating-altering-and-deleting-groups"></a>

슈퍼 사용자만이 그룹을 생성, 변경 또는 삭제할 수 있습니다.

다음 작업을 수행할 수 있습니다.
+ 그룹을 만들려면 [create group](r_CREATE_GROUP.md) 명령을 사용하세요.
+ 기존 그룹에 사용자를 추가하거나 기존 그룹에서 제거하려면 [ALTER GROUP](r_ALTER_GROUP.md) 명령을 사용하세요.
+ 그룹을 삭제하려면 [DROP GROUP](r_DROP_GROUP.md) 명령을 사용하세요. 이 명령은 그룹만을 삭제하며 그룹 구성원인 사용자는 삭제하지 않습니다.

# 사용자 및 그룹 액세스 제어 예
<a name="t_user_group_examples"></a>

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

그룹에서 사용자를 제거하는 방법에 대한 자세한 내용은 [ALTER GROUP](r_ALTER_GROUP.md) 섹션을 참조하세요.

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

   ```
   create group webappusers;
   
   create group webpowerusers;
   
   create group webdevusers;
   ```

1.  권한이 서로 다른 몇몇 데이터베이스 사용자를 만들어 그룹에 추가합니다.  

   1.  두 명의 사용자를 만들어 WEBAPPUSERS 그룹에 추가합니다.  

      ```
      create user webappuser1 password 'webAppuser1pass'
      in group webappusers;
      
      create user webappuser2 password 'webAppuser2pass'
      in group webappusers;
      ```

   1.  웹 개발자용 계정을 만들어 WEBDEVUSERS 그룹에 추가합니다.  

      ```
      create user webdevuser1 password 'webDevuser2pass'
      in group webdevusers;
      ```

   1.  슈퍼 사용자를 생성합니다. 이 사용자는 다른 사용자를 생성하는 관리 권한을 갖습니다.  

      ```
      create user webappadmin  password 'webAppadminpass1'
      createuser;
      ```

1.  웹 애플리케이션이 사용하는 데이터베이스 테이블에 연결될 스키마를 생성하고 다양한 사용자 그룹에 이 스키마에 대한 액세스 권한을 부여합니다.

   1.  WEBAPP 스키마를 생성합니다.

      ```
      create schema webapp;
      ```

   1.  WEBAPPUSERS 그룹에 USAGE 권한을 부여합니다.  

      ```
      grant usage on schema webapp to group webappusers;
      ```

   1.  WEBPOWERUSERS 그룹에 USAGE 권한을 부여합니다.  

      ```
      grant usage on schema webapp to group webpowerusers;
      ```

   1.  WEBDEVUSERS 그룹에 ALL 권한을 부여합니다.

      ```
      grant all on schema webapp to group webdevusers;
      ```

   기본적인 사용자 및 그룹이 이제 설정되었습니다. 이제 사용자와 그룹을 변경할 수 있습니다.

1.  예를 들어 다음 명령은 WEBAPPUSER1의 search\$1path 파라미터를 변경합니다.

   ```
   alter user webappuser1 set search_path to webapp, public;
   ```

   SEARCH\$1PATH는 테이블과 함수 같은 데이터베이스 객체를 스키마가 지정되지 않은 단순한 이름으로 참조할 때 객체에 대한 스키마 검색 순서를 지정합니다.

1.  그룹을 생성한 후 사용자를 그룹에 추가할 수 있습니다. 예를 들어 WEBAPPUSER2를 WEBPOWERUSERS 그룹에 추가할 수 있습니다.

   ```
   alter group webpowerusers add user webappuser2;
   ```