このページでは、パスワードベースの PostgreSQL 標準認証方法を使用して、PostgreSQL と AlloyDB for PostgreSQL の両方のロール、ユーザー、グループを作成、管理、削除する方法について説明します。
AlloyDB で PostgreSQL ユーザーを作成する
PostgreSQL ユーザーを作成すると、最初は LOGIN
権限のみが付与されます。これらの権限の詳細については、CREATE USER
をご覧ください。
任意のユーザーの権限は、ALTER ROLE
コマンドを使用して変更できます。psql
クライアントで新しいユーザーを作成する場合は、別のロールに関連付けるか、別の権限を付与します。
ユーザーの管理
AlloyDB ユーザーの作成と管理は、Google Cloud CLI または PostgreSQL コマンドを使用して行えます。以降のセクションでは、どちらの方法でも実行できる一般的なユーザー管理タスクについて説明します。
始める前に
PostgreSQL コマンドを使用してクラスタ上のユーザーを管理するには、次のものが必要です。
psql
クライアントへのアクセスpostgres
データベース ユーザー、または適切な管理権限を持つ別のユーザーロールへのアクセス
Google Cloud コンソールまたは Google Cloud CLI を使用してクラスタ上のユーザーを管理するには、そのクラスタにプライマリ インスタンスが必要です。クラスタにプライマリ インスタンスがない場合は、ユーザーを管理する前に作成する必要があります。
データベース ユーザーを作成する
ユーザー名とパスワードを使用してデータベースで直接認証を行うデータベース ユーザー(組み込み認証)を作成するには、このセクションの手順に沿って操作します。
代わりに、Identity and Access Management(IAM)を使用して認証するデータベース ユーザーを作成するには、IAM 認証を管理するをご覧ください。
Console
[クラスタ] ページに移動します。
ユーザーを追加するクラスタの名前をクリックします。
[ユーザー] をクリックします。
[ユーザー アカウントを追加] をクリックします。
[組み込み認証] は選択したままにします。
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
: ユーザーのユーザー名。USERNAME
は、SQL 識別子のルールに従う必要があります。特殊文字を使用しないか、二重引用符で囲みます。例:db_user_1
PASSWORD
: ユーザーのパスワード。パスワードなしでユーザーを作成するには、この引数を省略します。CLUSTER_ID
: ユーザーを追加するクラスタの ID。REGION_ID
: クラスタが存在するリージョンの ID。例:us-central1
ユーザーを作成したら、gcloud alloydb users set-roles
コマンドを使用して権限を変更できます。
また、ユーザーの作成時にロールまたはスーパーユーザー権限を付与することもできます。これを行うには、次のセクションで説明するように、--db-roles
または --superuser
引数を含めます。
データベース ユーザーにロールを付与する
Console
データベース ユーザーにロールを付与するには、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 アカウントを使用して接続するをご覧ください。
Console
[クラスタ] ページに移動します。
データベース ユーザーを含むクラスタの名前をクリックします。
[ユーザー] をクリックします。
ユーザーを表す行で、
[このユーザーに対する操作を開きます] をクリックします。[パスワードの変更] を選択します。
パスワードを指定します。
このユーザーの新しいパスワードを設定するには、[パスワード] フィールドにパスワードを入力します。
このユーザーにパスワードを設定しない場合は、[パスワードなし] チェックボックスをオンにします。
[OK] をクリックします。
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
データベース ユーザーからロールを取り消す
Console
ユーザーからロールを取り消すには、Google Cloud コンソールではなく、psql
または gcloud CLI を使用します。
psql
1 つ以上のロールから以前に付与された権限を取り消したり、ユーザーのロールのメンバーシップを取り消したりできます。
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
コマンドを実行します。
データベース ユーザーのリストを表示する
Console
[クラスタ] ページに移動します。
ユーザーを表示するクラスタの名前をクリックします。
[ユーザー] をクリックします。
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
データベース ユーザーの削除
Console
[クラスタ] ページに移動します。
ユーザーを含むクラスタの名前をクリックします。
[ユーザー] をクリックします。
ユーザーを表す行で、
[このユーザーに対する操作を開きます] をクリックします。[削除] を選択します。
[ユーザー アカウントを削除しますか?] ダイアログで、[削除] をクリックします。
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