표준 인증으로 PostgreSQL 사용자 관리

이 페이지에서는 비밀번호 기반 PostgreSQL 표준 인증 방법을 사용하여 PostgreSQL 및 PostgreSQL용 AlloyDB 역할, 사용자, 그룹을 모두 만들고, 관리하고, 삭제하는 방법을 설명합니다.

AlloyDB에서 PostgreSQL 사용자 만들기

PostgreSQL 사용자를 만들면 LOGIN 권한으로 시작합니다. 이러한 권한에 대한 자세한 내용은 CREATE USER를 참고하세요.

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

사용자 관리

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

시작하기 전에

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

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

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

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

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

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

콘솔

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

    클러스터로 이동

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

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

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

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

    IAM을 사용하여 데이터베이스 클러스터를 인증하고 로그인하려면 프로젝트를 준비하고 새 사용자에게 적절한 권한을 부여하는 추가 단계를 완료해야 합니다. 자세한 내용은 IAM 인증 관리를 참고하세요.

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

  7. 추가를 클릭합니다.

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: 사용자의 사용자 이름입니다. USERNAME는 SQL 식별자의 규칙을 따라야 합니다. 특수문자가 없어야 하며 따옴표로 묶어야 합니다. 예를 들면 db_user_1입니다.

  • 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;

다음 변수를 바꿉니다.

  • USERNAME: 사용자의 사용자 이름입니다.
  • ROLE: 사용자에게 부여할 역할입니다. 예를 들어 사용자에게 슈퍼 사용자 권한을 부여하려면 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입니다.

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

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

    다음 변수를 바꿉니다.

    • CLUSTER_ID: 사용자를 포함하는 클러스터의 ID입니다.

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

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

표준 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입니다.

수퍼유저 권한을 취소하려면 psql를 사용하여 사용자의 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입니다.

다음 단계