이 페이지에서는 PostgreSQL용 AlloyDB가 PostgreSQL 사용자 역할과 함께 작동하는 방식을 설명합니다.
AlloyDB의 사용자 역할 정보
AlloyDB 데이터베이스는 표준 PostgreSQL 개념인 역할을 사용합니다. 역할은 데이터베이스 사용자, 사용자 그룹 또는 둘 다의 역할을 할 수 있습니다.
사용자 역할에는 사용자가 시스템에 로그인할 수 있는 LOGIN
권한이 있습니다. 그룹 역할에는 다양한 권한이 있는 구성원 역할이 있으며, 이를 모든 구성원에게 한 번에 부여하거나 취소할 수 있습니다.
AlloyDB의 사전 정의된 PostgreSQL 역할
PostgreSQL에는 다양한 권한이 있는 일련의 사전 정의된 역할이 있습니다. AlloyDB는 이 PostgreSQL의 사전 정의된 역할 세트에 여러 사용자 및 그룹 역할을 추가합니다.
다음 표에는 AlloyDB에서 사전 정의하는 PostgreSQL 역할이 나와 있습니다.
역할 이름 | 권한 |
---|---|
alloydbsuperuser |
CREATEROLE , CREATEDB , LOGIN |
postgres |
CREATEROLE , CREATEDB , LOGIN |
alloydbimportexport |
CREATEROLE 및 CREATEDB . |
alloydbagent |
CREATEROLE 및 CREATEDB . |
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 인증 관리를 참고하세요.
콘솔
클러스터 페이지로 이동합니다.
사용자를 추가할 클러스터의 이름을 클릭합니다.
사용자를 클릭합니다.
사용자 계정 추가를 클릭합니다.
기본 제공되는 인증을 선택한 상태로 둡니다.
대신 Cloud IAM을 선택하여 IAM을 사용하여 인증하는 데이터베이스 사용자를 만들 수 있습니다. 이 선택사항을 사용하려면 프로젝트를 준비하고 새 데이터베이스 사용자에게 적절한 권한을 부여하는 추가 단계가 필요합니다. 자세한 내용은 IAM 인증 관리를 참고하세요.
새 사용자의 사용자 이름과 비밀번호를 입력합니다.
추가를 클릭합니다.
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 계정을 사용하여 연결을 참고하세요.
콘솔
클러스터 페이지로 이동합니다.
비밀번호를 변경하려는 데이터베이스 사용자가 포함된 클러스터의 이름을 클릭합니다.
사용자를 클릭합니다.
비밀번호를 변경하려는 사용자를 나타내는 행에서
이 사용자의 작업 열기를 클릭합니다.비밀번호 변경을 선택합니다.
비밀번호를 지정합니다.
이 사용자의 새 비밀번호를 설정하려면 비밀번호 입력란에 비밀번호를 입력합니다.
이 사용자의 비밀번호를 설정하지 않으려면 비밀번호 없음 체크박스를 선택합니다.
확인을 클릭합니다.
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
명령어를 실행하면 됩니다.
데이터베이스 사용자 목록 보기
콘솔
클러스터 페이지로 이동합니다.
사용자를 보려는 클러스터의 이름을 클릭합니다.
사용자를 클릭합니다.
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
).
데이터베이스 사용자 삭제
콘솔
클러스터 페이지로 이동합니다.
사용자를 삭제하려는 클러스터의 이름을 클릭합니다.
사용자를 클릭합니다.
삭제하려는 사용자를 나타내는 행에서
이 사용자의 작업 열기를 클릭합니다.삭제를 선택합니다.
사용자 계정을 삭제하시겠어요? 대화상자에서 삭제를 클릭합니다.
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
).