업무 자동화/PostgreSQL

PostgreSQL] 사용자 Group Role 만들기

ToolBOX01 2025. 7. 29. 18:12
반응형

▣ 사용자 그룹

사용자 그룹을 만들면 권한 관리가 간편해지고, 보안이 강화되며, 조직의 역할 구조를 효과적으로 반영할 수 있습니다. 이는 특히 대규모 데이터베이스 환경에서 필수적입니다.

[메뉴 위치]

분석팀(analyst_group)은 테이블 읽기 권한만 필요하고, 개발팀(developer_group)은 읽기/쓰기 권한이 필요할 때,
각 그룹에 적절한 권한을 부여하고 사용자를 그룹에 추가하여 관리.


1. General 탭 설정:

  • Name 필드에 그룹 이름을 입력합니다 (예: mygroup).
  • Comments에 필요 시 설명을 추가합니다.

 

2. Definition 탭 설정 (옵션):

  • 그룹은 로그인 기능이 필요 없는 경우가 많으므로, 비밀번호는 설정하지 않아도 됩니다.
  • 로그인 가능 여부는 Privileges 탭에서 설정합니다.

 

1) Password (비밀번호):

  • 설명: 롤이 로그인 가능한 경우, 해당 롤로 접속할 때 사용할 비밀번호를 설정합니다.
  • 그룹 롤 관련: 그룹 롤은 일반적으로 로그인하지 않는 NOLOGIN 속성을 가지므로, 이 필드는 비워두는 경우가 많습니다. 하지만 로그인 가능한 롤(사용자 롤)을 만들 때는 비밀번호를 입력해야 합니다.
  • 예시: mygroup이 로그인 불가능한 그룹 롤이라면 이 필드를 비워둡니다.
    사용자 롤이라면 강력한 비밀번호(예: P@ssw0rd123)를 설정.
  • 주의: 비밀번호는 암호화되어 저장되며, 보안 정책에 따라 주기적으로 변경할 수 있습니다.

 

2) Account Expires (계정 만료):

  • 설명: 롤의 계정이 만료되는 날짜와 시간을 설정합니다. 만료일이 지나면 해당 롤로 로그인할 수 없습니다.
  • 그룹 롤 관련: 그룹 롤은 로그인하지 않으므로 이 설정은 일반적으로 사용되지 않습니다. 하지만 특정 프로젝트 기간 동안만 유효한 그룹을 만들고 싶을 때 설정할 수 있습니다.
  • 예시: 2025-12-31 23:59:59로 설정하면 해당 날짜 이후 롤이 비활성화됩니다

 

3) Connection Limit (연결 제한):

  • 설명: 해당 롤이 동시에 설정할 수 있는 최대 데이터베이스 연결 수를 지정합니다. 기본값은 -1(제한 없음)입니다.
  • 그룹 롤 관련: 그룹 롤은 로그인하지 않으므로 이 설정은 영향을 미치지 않습니다. 하지만 로그인 가능한 롤을 만들 때, 리소스 사용을 제어하기 위해 설정할 수 있습니다.
  • 예시: 5로 설정하면 해당 롤은 최대 5개의 동시 연결만 허용.

 

3. Privileges 탭 설정:

Privileges 탭은 해당 롤에 부여할 권한과 속성을 정의하는 데 사용됩니다. 이 탭은 롤의 데이터베이스 접근 및 관리 권한을 세밀하게 설정할 수 있는 핵심 영역으로, 특히 그룹 롤의 경우 여러 사용자에게 공통적으로 적용할 권한을 설정하는 데 중요합니다.

1) Can login? (로그인 가능 여부):

  • 설명: 롤이 데이터베이스에 로그인할 수 있는지 여부를 결정합니다.
  • 그룹 롤 관련: 그룹 롤은 일반적으로 로그인하지 않는 용도로 사용되므로 이 옵션은 **꺼짐(OFF)**으로 설정됩니다. 로그인 가능한 사용자 롤을 만들 때만 활성화합니다.
  • 예시: mygroup은 그룹 롤이므로 Can login?을 비활성화하여 NOLOGIN 속성을 부여.
  • 체크 여부로 그룹과 사용자를 구분 하는 아이콘을 결정 합니다. 

2) Superuser? (슈퍼유저 여부):

  • 설명: 롤이 데이터베이스의 모든 권한을 가지는 슈퍼유저인지 설정합니다. 슈퍼유저는 모든 객체에 접근하고 모든 작업을 수행할 수 있습니다.
  • 그룹 롤 관련: 보안상 그룹 롤에 슈퍼유저 권한을 부여하는 것은 권장되지 않습니다. 특정 사용자에게만 제한적으로 부여하세요.
  • 예시: mygroup에 슈퍼유저 권한을 주지 않으려면 이 옵션을 비활성화.

3) Create roles? (롤 생성 가능 여부):

  • 설명: 롤이 새로운 롤을 생성하거나 수정할 수 있는 권한을 가지는지 설정합니다.
  • 그룹 롤 관련: 그룹 롤은 일반적으로 다른 롤을 생성할 필요가 없으므로 이 옵션은 비활성화하는 경우가 많습니다.
  • 예시: mygroup이 다른 롤을 관리하지 않도록 Create roles?를 비활성화.

4) Create databases? (데이터베이스 생성 가능 여부):

  • 설명: 롤이 새로운 데이터베이스를 생성할 수 있는지 설정합니다.
  • 그룹 롤 관련: 그룹 롤은 데이터베이스 생성 권한이 필요 없는 경우가 일반적이므로 비활성화합니다.
  • 예시: mygroup에 데이터베이스 생성 권한을 주지 않으려면 이 옵션을 비활성화.

5) Inherit rights from parent roles? (상위 롤 권한 상속 여부):

  • 설명: 롤이 상위 롤(즉, 멤버로 속한 다른 롤)로부터 권한을 자동으로 상속받는지 설정합니다. 기본적으로 활성화되어 있습니다.
  • 그룹 롤 관련: 그룹 롤은 다른 롤의 권한을 상속받아 사용자들에게 전달하는 역할이므로, 이 옵션은 일반적으로 **켜짐(ON)**으로 유지합니다.
  • 예시: mygroup이 다른 롤로부터 권한을 상속받도록 Inherit rights를 활성화.

6) Can initiate replication? (복제 시작 가능 여부):

  • 설명: 롤이 데이터베이스 복제를 시작할 수 있는지 설정합니다. 복제는 주로 고가용성(HA) 설정에서 사용됩니다.
  • 그룹 롤 관련: 그룹 롤은 복제와 관련된 작업을 수행하지 않으므로 이 옵션은 비활성화합니다.
  • 예시: mygroup에 복제 권한을 주지 않으려면 비활성화.

7) Bypass RLS? (Row-Level Security 우회 여부):

  • 설명: 롤이 행 수준 보안(Row-Level Security, RLS) 정책을 우회할 수 있는지 설정합니다. RLS는 특정 행에 대한 접근을 제한하는 보안 기능입니다.
  • 그룹 롤 관련: 보안 강화를 위해 그룹 롤에 이 권한을 부여하지 않는 것이 일반적입니다.
  • 예시: mygroup이 RLS를 우회하지 않도록 비활성화.

 

4. Membership 탭 설정:

해당 롤에 속할 다른 롤(사용자 또는 하위 그룹)을 추가하거나 관리하는 데 사용됩니다. 이 탭은 특히 그룹 롤의 주요 목적인 사용자들에게 권한을 상속시키는 구조를 설정하는 데 핵심적인 역할을 합니다.


테이블 권한 부여

 

[DB] postgresql 사용자 생성 및 권한부여하기

postgresql 사용자 생성 권한 및 권한을 부여하는 방법입니다. pgAdmin4DB관리툴을 이용해서 사용자를 추가 및 권한설정을 하도록 하겠습니다. 1. 슈퍼권한 유저 만들기 test라는 계정을 슈퍼유저 권한

sosopro.tistory.com

 

 

by korealionkk@gmail.com


반응형