AlloyDB 사용자 역할 관리

이 페이지에서는 PostgreSQL용 AlloyDB가 PostgreSQL 사용자 역할과 함께 작동하는 방식을 설명합니다.

AlloyDB의 사용자 역할 정보

AlloyDB 데이터베이스는 표준 PostgreSQL 개념인 역할을 사용합니다. 역할은 데이터베이스 사용자, 사용자 그룹 또는 둘 다의 역할을 할 수 있습니다.

사용자 역할에는 사용자가 시스템에 로그인할 수 있는 LOGIN 권한이 있습니다. 그룹 역할에는 다양한 권한이 있는 구성원 역할이 있으며, 이를 모든 구성원에게 한 번에 부여하거나 취소할 수 있습니다.

AlloyDB의 사전 정의된 PostgreSQL 역할

PostgreSQL에는 다양한 권한이 있는 일련의 사전 정의된 역할이 있습니다. AlloyDB는 이 PostgreSQL의 사전 정의된 역할 세트에 여러 사용자 및 그룹 역할을 추가합니다.

다음 표에는 AlloyDB에서 사전 정의하는 PostgreSQL 역할이 나와 있습니다.

역할 이름 권한
alloydbsuperuser CREATEROLE, CREATEDB, LOGIN
postgres CREATEROLE, CREATEDB, LOGIN
alloydbimportexport CREATEROLECREATEDB.
alloydbagent CREATEROLECREATEDB.
alloydbreplica REPLICATION
alloydbiamuser 기본적으로 이 역할에는 권한이 없습니다.

다음 섹션에서는 가장 일반적으로 사용되는 AlloyDB 관련 역할에 대한 정보를 제공합니다.

alloydbsuperuser 그룹 역할

alloydbsuperuser 역할은 데이터베이스 시스템을 초기화하고 다른 수퍼유저 작업을 실행하기 위한 사전 정의된 역할입니다. 이 역할에는 다음과 같은 권한이 있습니다.

  • 수퍼유저 권한이 필요한 확장 프로그램 만들기
  • 이벤트 트리거 만들기
  • 복제 사용자 만들기
  • 복제 게시 및 구독 만들기

관리형 서비스인 AlloyDB에서는 사용자에게 PostgreSQL superuser 역할을 부여할 수 없습니다. 대신 데이터베이스 사용자 역할에 alloydbsuperuser 역할을 부여하여 AlloyDB 수퍼유저 권한을 부여할 수 있습니다.

postgres 사용자 역할

postgres 사용자는 alloydbsuperuser 역할의 일부입니다. AlloyDB 클러스터를 만들 때 postgres 사용자 역할에 비밀번호를 할당합니다. 그런 다음 postgres 사용자 역할을 사용하여 시스템에 로그인하여 데이터베이스, 추가 역할 등을 만듭니다.

alloydbimportexport 사용자 역할

AlloyDB 클러스터를 만들면 가져오기 및 내보내기 작업에 필요한 최소한의 권한 집합으로 기본 사용자 alloydbimportexport가 생성됩니다.

이러한 작업을 수행할 사용자를 자체적으로 만들 수 있습니다. 맞춤 alloydbimportexport 사용자를 만들지 않으면 시스템은 가져오기 및 내보내기 작업에 기본 alloydbimportexport 사용자를 사용합니다.

alloydbimportexport 사용자는 시스템 사용자입니다. alloydbimportexport 사용자를 직접 사용하여 PostgreSQL 데이터베이스에 로그인하거나 다른 작업을 실행할 수 없습니다.

alloydbiamuser 그룹 역할

alloydbiamuser 그룹 역할 내 데이터베이스 사용자는 표준 PostgreSQL 비밀번호 기반 인증을 사용하는 대신 Identity and Access Management를 사용하여 AlloyDB 인스턴스와 인증합니다.

AlloyDB에서는 GRANT PostgreSQL 명령어 또는 유사한 메서드를 사용하여 사용자에게 이 역할을 부여할 수 없습니다. 대신 AlloyDB 관리 도구를 사용하여 Identity and Access Management 기반 데이터베이스 사용자를 만들고 관리할 수 있습니다. 자세한 내용은 IAM 인증 관리를 참고하세요.

AlloyDB에서 다른 PostgreSQL 사용자 만들기

다른 PostgreSQL 사용자 또는 역할을 만들 수 있습니다. 이러한 사용자는 postgres 사용자와 동일한 권한 집합(CREATE ROLE, CREATEDB, LOGIN)을 가집니다. 이러한 권한에 관한 자세한 내용은 CREATE ROLE를 참고하세요.

ALTER ROLE 명령어를 사용하여 모든 사용자의 권한을 변경할 수 있습니다. psql 클라이언트로 새 사용자를 만들 경우 이 사용자를 다른 역할과 연결하거나 다른 권한을 할당할 수 있습니다.

사용자 관리

Google Cloud CLI 또는 PostgreSQL 명령어를 사용하여 AlloyDB 사용자 역할을 만들고 관리할 수 있습니다. 다음 섹션에서는 두 가지 방법을 사용하여 일반적인 사용자 관리 작업을 보여줍니다.

시작하기 전에

PostgreSQL 명령어를 사용하여 클러스터에서 사용자를 관리하려면 다음이 필요합니다.

  • psql 클라이언트 액세스
  • postgres 데이터베이스 사용자 또는 적절한 관리 권한이 있는 다른 사용자 역할에 대한 액세스

Google Cloud 콘솔 또는 Google Cloud CLI를 사용하여 클러스터의 사용자를 관리하려면 해당 클러스터에 기본 인스턴스가 있어야 합니다. 클러스터에 기본 인스턴스가 없는 경우 사용자를 관리하려면 먼저 인스턴스를 만들어야 합니다.

데이터베이스 사용자를 만듭니다.

사용자 이름과 비밀번호를 사용하여 데이터베이스와 직접 인증하는 데이터베이스 사용자(기본 제공 인증이라고도 함)를 만들려면 이 섹션의 단계를 따르세요.

대신 Identity and Access Management를 사용하여 인증하는 데이터베이스 사용자를 만들려면 IAM 인증 관리를 참고하세요.

콘솔

  1. 클러스터 페이지로 이동합니다.

    클러스터로 이동

  2. 사용자를 추가할 클러스터의 이름을 클릭합니다.

  3. 사용자를 클릭합니다.

  4. 사용자 계정 추가를 클릭합니다.

  5. 기본 제공되는 인증을 선택한 상태로 둡니다.

대신 Cloud IAM을 선택하여 IAM을 사용하여 인증하는 데이터베이스 사용자를 만들 수 있습니다. 이 선택사항을 사용하려면 프로젝트를 준비하고 새 데이터베이스 사용자에게 적절한 권한을 부여하는 추가 단계가 필요합니다. 자세한 내용은 IAM 인증 관리를 참고하세요.

  1. 새 사용자의 사용자 이름과 비밀번호를 입력합니다.

  2. 추가를 클릭합니다.

psql

CREATE USER USERNAME WITH PASSWORD 'PASSWORD';

데이터베이스 사용자를 만들고 정의하는 방법에 관한 자세한 내용은 CREATE USER를 참고하세요.

사용자 역할을 만든 후 psql 클라이언트에서 ALTER ROLE 명령어를 사용하여 권한을 변경할 수 있습니다.

gcloud

gcloud alloydb users create 명령어를 사용합니다.

gcloud alloydb users create USERNAME \
--password=PASSWORD \
--cluster=CLUSTER_ID \
--region=REGION_ID

다음을 바꿉니다.

  • USERNAME: 새 사용자 역할의 사용자 이름입니다.

  • PASSWORD: 새 사용자 역할의 비밀번호입니다. 비밀번호 없이 사용자를 만들려면 이 인수를 생략합니다.

  • CLUSTER_ID: 새 사용자 역할을 추가할 클러스터의 ID입니다.

  • REGION_ID: 클러스터가 있는 리전의 ID입니다(예: us-central1).

사용자 역할을 만든 후 gcloud alloydb users set-roles 명령어를 사용하여 권한을 변경할 수 있습니다.

사용자를 만들 때 사용자에게 역할 또는 수퍼유저 권한을 부여할 수도 있습니다. 이렇게 하려면 다음 섹션에 설명된 대로 --db-roles 또는 --superuser 인수를 포함합니다.

데이터베이스 사용자에게 역할 부여

콘솔

데이터베이스 사용자에게 역할을 부여하려면 Google Cloud 콘솔 대신 psql 또는 gcloud CLI를 사용하세요.

psql

GRANT ROLE to USERNAME;

사용자에게 최고 관리자 권한을 부여하려면 해당 사용자에게 alloydbsuperuser 역할을 부여합니다.

gcloud

gcloud alloydb users set-roles 명령어를 사용하여 사용자가 보유하도록 할 모든 역할을 지정합니다.

gcloud alloydb users set-roles USERNAME \
--db-roles=ROLES \
--cluster=CLUSTER_ID \
--region=REGION_ID

다음을 바꿉니다.

  • USERNAME: 역할이 부여될 사용자 역할입니다.

  • ROLES: 지정된 사용자가 보유하도록 할 모든 역할을 쉼표로 구분한 목록입니다. 사용자에게 할당하려는 기존 역할과 새 역할을 모두 나열해야 합니다.

    사용자에게 할당된 기존 역할 목록을 찾으려면 다음 명령어를 실행합니다.

    gcloud alloydb list users --cluster=CLUSTER_ID --region=REGION_ID
  • CLUSTER_ID: 사용자를 포함하는 클러스터의 ID입니다.

  • REGION_ID: 클러스터가 있는 리전의 ID입니다(예: us-central1).

사용자에게 슈퍼 사용자 권한을 부여하려면 이전에 설명된 명령어를 사용하여 사용자에게 alloydbsuperuser 역할을 수동으로 부여하거나 --superuser=true 인수와 함께 gcloud alloydb users set-superuser 명령어를 실행하면 됩니다.

gcloud alloydb users set-superuser USERNAME \
--superuser=true \
--cluster=CLUSTER_ID \
--region=REGION_ID

데이터베이스 사용자의 비밀번호 변경

표준 PostgreSQL 데이터베이스 사용자의 새 비밀번호를 설정하려면 이 섹션의 단계를 따르세요.

IAM 기반 사용자는 비밀번호를 사용하여 인증하지 않으므로 IAM 기반 사용자의 비밀번호를 변경하거나 설정할 수 없습니다. 자세한 내용은 IAM 계정을 사용하여 연결을 참고하세요.

콘솔

  1. 클러스터 페이지로 이동합니다.

    클러스터로 이동

  2. 비밀번호를 변경하려는 데이터베이스 사용자가 포함된 클러스터의 이름을 클릭합니다.

  3. 사용자를 클릭합니다.

  4. 비밀번호를 변경하려는 사용자를 나타내는 행에서 이 사용자의 작업 열기를 클릭합니다.

  5. 비밀번호 변경을 선택합니다.

  6. 비밀번호를 지정합니다.

    • 이 사용자의 새 비밀번호를 설정하려면 비밀번호 입력란에 비밀번호를 입력합니다.

    • 이 사용자의 비밀번호를 설정하지 않으려면 비밀번호 없음 체크박스를 선택합니다.

  7. 확인을 클릭합니다.

psql

ALTER USER USERNAME WITH PASSWORD 'PASSWORD';

사용자 비밀번호 변경에 대한 자세한 내용은 ALTER ROLE를 참고하세요.

gcloud

gcloud alloydb users set-password 명령어를 사용합니다.

gcloud alloydb users set-password USERNAME \
--password=PASSWORD \
--cluster=CLUSTER_ID \
--region=REGION_ID

다음을 바꿉니다.

  • USERNAME: 사용자 역할의 사용자 이름입니다.

  • PASSWORD: 사용자 역할에 할당할 새 비밀번호입니다.

  • CLUSTER_ID: 사용자 역할이 속한 클러스터의 ID입니다.

  • REGION_ID: 클러스터가 있는 리전의 ID입니다(예: us-central1).

데이터베이스 사용자의 역할 취소

콘솔

데이터베이스 사용자의 역할을 취소하려면 Google Cloud 콘솔 대신 psql 또는 gcloud CLI를 사용하세요.

psql

하나 이상의 역할에서 이전에 부여된 권한을 취소하거나 사용자의 역할 멤버십을 취소할 수 있습니다.

REVOKE ROLE FROM USERNAME;

사용자의 수퍼유저 권한을 삭제하려면 해당 사용자의 alloydbsuperuser 역할을 취소합니다.

gcloud

Google Cloud CLI로 역할을 취소하려면 gcloud alloydb users set-roles 명령어를 사용하여 사용자가 보유하도록 할 모든 역할을 지정하고 사용자에게서 취소할 역할은 생략합니다.

gcloud alloydb users set-roles USERNAME \
--db-roles=ROLES \
--cluster=CLUSTER_ID \
--region=REGION_ID

다음을 바꿉니다.

  • USERNAME: 역할이 취소되는 사용자 역할입니다.

  • ROLES: 취소할 역할을 생략하고 지정된 사용자가 보유하도록 할 모든 역할을 쉼표로 구분한 목록입니다.

    사용자에게 할당된 모든 역할 목록을 확인하려면 다음 명령어를 실행합니다.

    gcloud alloydb list users --cluster=CLUSTER_ID --region=REGION_ID
  • CLUSTER_ID: 사용자를 포함하는 클러스터의 ID입니다.

  • REGION_ID: 클러스터가 있는 리전의 ID입니다(예: us-central1).

수퍼유저 권한을 취소하려면 이전에 설명된 명령어를 사용하여 사용자의 alloydbsuperuser 역할을 수동으로 삭제하거나 --superuser=false 인수와 함께 gcloud alloydb users set-superuser 명령어를 실행하면 됩니다.

데이터베이스 사용자 목록 보기

콘솔

  1. 클러스터 페이지로 이동합니다.

    클러스터로 이동

  2. 사용자를 보려는 클러스터의 이름을 클릭합니다.

  3. 사용자를 클릭합니다.

psql

\du 명령어는 그룹 멤버십을 포함한 모든 데이터베이스 사용자의 테이블을 출력합니다.

\du

gcloud

gcloud alloydb users list 명령어를 사용합니다.

gcloud alloydb users list \
--cluster=CLUSTER_ID \
--region=REGION_ID

다음을 바꿉니다.

  • CLUSTER_ID: 사용자를 나열할 클러스터의 ID입니다.

  • REGION_ID: 클러스터가 있는 리전의 ID입니다(예: us-central1).

데이터베이스 사용자 삭제

콘솔

  1. 클러스터 페이지로 이동합니다.

    클러스터로 이동

  2. 사용자를 삭제하려는 클러스터의 이름을 클릭합니다.

  3. 사용자를 클릭합니다.

  4. 삭제하려는 사용자를 나타내는 행에서 이 사용자의 작업 열기를 클릭합니다.

  5. 삭제를 선택합니다.

  6. 사용자 계정을 삭제하시겠어요? 대화상자에서 삭제를 클릭합니다.

psql

사용자를 삭제하기 전에 이 사용자가 가지고 있는 모든 객체를 삭제하거나 소유권을 다시 할당하고 다른 객체에 대해 부여받은 역할을 취소해야 합니다.

DROP ROLE USERNAME;

gcloud

gcloud alloydb users delete 명령어를 사용합니다.

gcloud alloydb users delete USERNAME \
--cluster=CLUSTER_ID \
--region=REGION_ID

다음을 바꿉니다.

  • USERNAME: 삭제할 사용자 역할입니다.

  • CLUSTER_ID: 사용자 역할을 삭제할 클러스터의 ID입니다.

  • REGION_ID: 클러스터가 있는 리전의 ID입니다(예: us-central1).

다음 단계