このページでは、Cloud SQL の組み込み認証を有効にして使用する方法について説明します。
概要については、Cloud SQL 組み込みデータベース認証をご覧ください。ユーザーを作成する前に
- Cloud SQL インスタンスを作成します。詳細については、インスタンスの作成をご覧ください。
- インスタンスのパスワード ポリシーを有効にします。詳細については、インスタンス パスワード ポリシーをご覧ください。
データベースの管理クライアントでユーザーを管理する場合は、次の操作を行います。
クライアントをインスタンスに接続します。外部アプリケーションの接続オプションをご覧ください。
パスワードを設定して、インスタンスのデフォルト ユーザーを構成します。デフォルトのユーザー アカウントのパスワードを設定するをご覧ください。
デフォルトのユーザー アカウントのパスワードを設定する
新しい Cloud SQL インスタンスを作成する場合は、インスタンスに接続する前に、デフォルトのユーザー アカウントのパスワードを設定する必要があります。
Cloud SQL for PostgreSQL の場合、デフォルトのユーザーはpostgres です。コンソール
-
Google Cloud コンソールで、Cloud SQL の [インスタンス] ページに移動します。
- インスタンスの [概要] ページを開くには、インスタンス名をクリックします。
- SQL ナビゲーション メニューから [ユーザー] を選択します。
postgresユーザーを検索し、その他の操作メニュー
から [パスワードを変更] を選択します。- 覚えやすく強力なパスワードを指定して、[OK] をクリックします。
gcloud
デフォルト ユーザーのパスワードを設定するには、次のように gcloud sql users set-password コマンドを使用します。
コマンドを実行する前に、INSTANCE_NAME をインスタンス名に置き換えます。
gcloud sql users set-password postgres \ --instance=INSTANCE_NAME \ --prompt-for-password
REST v1
デフォルトのユーザー アカウントのパスワードを更新するには、users:update メソッドを指定して PUT リクエストを使用します。
リクエストのデータを使用する前に、次のように置き換えます。
- project-id: プロジェクト ID
- instance-id: 目的のインスタンス ID
- user-id: ユーザーの ID
- password: ユーザーのパスワード
HTTP メソッドと URL:
PUT https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/users?name=user-id
リクエストの本文(JSON):
{
"name": "user-id",
"password": "password"
}
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id",
"status": "DONE",
"user": "[email protected]",
"insertTime": "2020-02-07T22:38:41.217Z",
"startTime": "2020-02-07T22:38:41.217Z",
"endTime": "2020-02-07T22:38:44.801Z",
"operationType": "UPDATE_USER",
"name": "operation-id",
"targetId": "instance-id",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id",
"targetProject": "project-id"
}
REST v1beta4
デフォルトのユーザー アカウントのパスワードを更新するには、users:update メソッドを指定して PUT リクエストを使用します。
リクエストのデータを使用する前に、次のように置き換えます。
- project-id: プロジェクト ID
- instance-id: 目的のインスタンス ID
- user-id: ユーザーの ID
- password: ユーザーのパスワード
HTTP メソッドと URL:
PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users?name=user-id
リクエストの本文(JSON):
{
"name": "user-id",
"password": "password"
}
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
"status": "DONE",
"user": "[email protected]",
"insertTime": "2020-02-07T22:38:41.217Z",
"startTime": "2020-02-07T22:38:41.217Z",
"endTime": "2020-02-07T22:38:44.801Z",
"operationType": "UPDATE_USER",
"name": "operation-id",
"targetId": "instance-id",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
"targetProject": "project-id"
}
ユーザーを作成する
デフォルトのユーザー アカウントの設定が完了したら、他のユーザーを作成できます。
コンソール
-
Google Cloud コンソールで、Cloud SQL の [インスタンス] ページに移動します。
- インスタンスの [概要] ページを開くには、インスタンス名をクリックします。
- SQL ナビゲーション メニューから [ユーザー] を選択します。
- [ユーザー アカウントを追加] をクリックします。
[ユーザー アカウントをインスタンス instance_name に追加] ページで、ユーザーが組み込みのデータベース メソッド(ユーザー名とパスワード)を使用して認証を行うか、IAM ユーザーとして認証を行うかを選択できます。
- [組み込み認証](デフォルト)を選択し、次の情報を追加します。
- ユーザー名
- 省略可。パスワード覚えやすく強力なパスワードを指定します。
- [追加] をクリックします。
Cloud SQL の認証方法を使用するインスタンス上に作成されたユーザーには、cloudsqlsuperuser ロールが自動的に付与されます。このロールに関連付けられている権限は、CREATEROLE、CREATEDB、LOGIN です。
これらのユーザーの属性を変更する必要がある場合は、psql クライアントで ALTER ROLE コマンドを使用します。ALTER ROLE で変更できない属性もあります。ただし、NOSUPERUSER ロールと NOREPLICATION ロールは例外です。
gcloud
ユーザーを作成するには、gcloud sql users create コマンドを使用します。
次のように置き換えます。
- USER_NAME: ユーザー名。
- INSTANCE_NAME: インスタンスの名前。
- PASSWORD: ユーザーのパスワード。
gcloud sql users create USER_NAME \ --instance=INSTANCE_NAME \ --password=PASSWORD
Cloud SQL の認証方法を使用するインスタンス上に作成されたユーザーには、cloudsqlsuperuser ロールが自動的に付与されます。このロールに関連付けられている権限は、CREATEROLE、CREATEDB、LOGIN です。
これらのユーザーの属性を変更する必要がある場合は、psql クライアントで ALTER ROLE コマンドを使用します。ALTER ROLE で変更できない属性もあります。ただし、NOSUPERUSER ロールと NOREPLICATION ロールは例外です。
ユーザー名の長さの上限は、オンプレミス PostgreSQL の場合と同じです。
ユーザーを作成するときに、ユーザー パスワード ポリシーのパラメータを追加できます。
Terraform
ユーザーを作成するには、Terraform リソースを使用します。
変更を適用する
Google Cloud プロジェクトで Terraform 構成を適用するには、次のセクションの手順を完了します。
Cloud Shell を準備する
- Cloud Shell を起動します。
-
Terraform 構成を適用するデフォルトの Google Cloud プロジェクトを設定します。
このコマンドは、プロジェクトごとに 1 回だけ実行する必要があります。これは任意のディレクトリで実行できます。
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Terraform 構成ファイルに明示的な値を設定すると、環境変数がオーバーライドされます。
ディレクトリを準備する
Terraform 構成ファイルには独自のディレクトリ(ルート モジュールとも呼ばれます)が必要です。
-
Cloud Shell で、ディレクトリを作成し、そのディレクトリ内に新しいファイルを作成します。ファイルの拡張子は
.tfにする必要があります(例:main.tf)。このチュートリアルでは、このファイルをmain.tfとします。mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
チュートリアルを使用している場合は、各セクションまたはステップのサンプルコードをコピーできます。
新しく作成した
main.tfにサンプルコードをコピーします。必要に応じて、GitHub からコードをコピーします。Terraform スニペットがエンドツーエンドのソリューションの一部である場合は、この方法をおすすめします。
- 環境に適用するサンプル パラメータを確認し、変更します。
- 変更を保存します。
-
Terraform を初期化します。これは、ディレクトリごとに 1 回だけ行います。
terraform init
最新バージョンの Google プロバイダを使用する場合は、
-upgradeオプションを使用します。terraform init -upgrade
変更を適用する
-
構成を確認して、Terraform が作成または更新するリソースが想定どおりであることを確認します。
terraform plan
必要に応じて構成を修正します。
-
次のコマンドを実行します。プロンプトで「
yes」と入力して、Terraform 構成を適用します。terraform apply
Terraform に「Apply complete!」というメッセージが表示されるまで待ちます。
- Google Cloud プロジェクトを開いて結果を表示します。 Google Cloud コンソールの UI でリソースに移動して、Terraform によって作成または更新されたことを確認します。
変更を削除する
変更を削除するには、次の手順を行います。
- 削除の保護を無効にするには、Terraform 構成ファイルで
deletion_protection引数をfalseに設定します。deletion_protection = "false"
- 次のコマンドを実行します。プロンプトで「
yes」と入力して、更新された Terraform 構成を適用します。terraform apply
-
次のコマンドを実行します。プロンプトで「
yes」と入力して、以前に Terraform 構成で適用されたリソースを削除します。terraform destroy
REST v1
ユーザーを作成するには、users:insert メソッドで POST リクエストを使用します。
リクエストのデータを使用する前に、次のように置き換えます。
- project-id: プロジェクト ID
- instance-id: 目的のインスタンス ID
- user-id: ユーザーの ID
- password: ユーザーのパスワード
HTTP メソッドと URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/users
リクエストの本文(JSON):
{
"name": "user-id",
"password": "password"
}
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id",
"status": "DONE",
"user": "[email protected]",
"insertTime": "2020-02-07T22:44:16.656Z",
"startTime": "2020-02-07T22:44:16.686Z",
"endTime": "2020-02-07T22:44:20.437Z",
"operationType": "CREATE_USER",
"name": "operation-id",
"targetId": "instance-id",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id",
"targetProject": "project-id"
}
Cloud SQL の認証方法を使用するインスタンス上に作成されたユーザーには、cloudsqlsuperuser ロールが自動的に付与されます。このロールに関連付けられている権限は、CREATEROLE、CREATEDB、LOGIN です。
これらのユーザーの属性を変更する必要がある場合は、psql クライアントで ALTER ROLE コマンドを使用します。ALTER ROLE で変更できない属性もあります。ただし、NOSUPERUSER ロールと NOREPLICATION ロールは例外です。
ユーザー名の長さの上限は、オンプレミス PostgreSQL の場合と同じです。
ユーザーを作成するときに、ユーザー パスワード ポリシーのパラメータを追加できます。
REST v1beta4
ユーザーを作成するには、users:insert メソッドで POST リクエストを使用します。
リクエストのデータを使用する前に、次のように置き換えます。
- project-id: プロジェクト ID
- instance-id: 目的のインスタンス ID
- user-id: ユーザーの ID
- password: ユーザーのパスワード
HTTP メソッドと URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users
リクエストの本文(JSON):
{
"name": "user-id",
"password": "password"
}
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
"status": "DONE",
"user": "[email protected]",
"insertTime": "2020-02-07T22:44:16.656Z",
"startTime": "2020-02-07T22:44:16.686Z",
"endTime": "2020-02-07T22:44:20.437Z",
"operationType": "CREATE_USER",
"name": "operation-id",
"targetId": "instance-id",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
"targetProject": "project-id"
}
Cloud SQL の認証方法を使用するインスタンス上に作成されたユーザーには、cloudsqlsuperuser ロールが自動的に付与されます。このロールに関連付けられている権限は、CREATEROLE、CREATEDB、LOGIN です。
これらのユーザーの属性を変更する必要がある場合は、psql クライアントで ALTER ROLE コマンドを使用します。ALTER ROLE で変更できない属性もあります。ただし、NOSUPERUSER ロールと NOREPLICATION ロールは例外です。
ユーザー名の長さの上限は、オンプレミス PostgreSQL の場合と同じです。
ユーザーを作成するときに、ユーザー パスワード ポリシーのパラメータを追加できます。
psql クライアント
psqlプロンプトで、ユーザーを作成します。CREATE USER USER_NAME WITH PASSWORD PASSWORD ATTRIBUTE1 ATTRIBUTE2...;
プロンプトが表示されたら、パスワードを入力します。
ロールの属性に関する詳細については、PostgreSQL のドキュメントをご覧ください。
- ユーザー テーブルを表示することによって、ユーザーの作成を確認できます。
SELECT * FROM pg_roles;
ユーザー パスワード ポリシーを設定する
組み込みの認証タイプを使用してパスワード ポリシーを設定できます。
gcloud
ユーザー パスワード ポリシーを設定するには、gcloud sql users set-password-policy コマンドを使用します。
次のように置き換えます。
- USER_NAME: ユーザー名。
- INSTANCE_NAME: インスタンスの名前。
- HOST: 特定の IP アドレス、アドレス範囲、または任意のホストとしてのユーザーのホスト名(
%)。 - PASSWORD_POLICY_ALLOWED_FAILED_ATTEMPTS:(省略可)アカウントがロックされるまでにユーザーがパスワードの入力を再試行できる回数。チェックを有効にするには
--password-policy-enable-failed-attempts-check、チェックを無効にするには--no-password-policy-enable-failed-attempts-checkを使用します。 - PASSWORD_POLICY_PASSWORD_EXPIRATION_DURATION:(省略可)パスワードが期限切れになるまでの日数を指定します。この期限が過ぎると、ユーザーは新しいパスワードを作成する必要があります。
gcloud sql users set-password-policy USER_NAME \ --instance=INSTANCE_NAME \ --host=HOST \ --password-policy-enable-failed-attempts-check \ --password-policy-allowed-failed-attempts=PASSWORD_POLICY_ALLOWED_FAILED_ATTEMPTS \ --password-policy-password-expiration-duration=PASSWORD_POLICY_PASSWORD_EXPIRATION_DURATION
ユーザー パスワード ポリシーを削除するには、--clear-password-policy パラメータを使用します。
gcloud sql users set-password-policy USER_NAME \ --instance=INSTANCE_NAME \ --host=HOST \ --clear-password-policy
ユーザー パスワード ポリシーを表示するには、ユーザーを一覧表示するをご覧ください。
REST v1
ユーザー パスワード ポリシーを設定するには、users:update メソッドで PUT リクエストを使用します。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: プロジェクト ID
- INSTANCE_ID: インスタンス ID
- USER_ID: ユーザーの ID
- PASSWORD: ユーザーのパスワード
- FAILED_ATTEMPTS_CHECK:
trueに設定すると、ログイン試行の失敗回数のチェックが有効になり、上限に達するとアカウントがロックされます - NUMBER_OF_ATTEMPTS: ログイン試行の失敗回数。この回数を超えるとアカウントがロックされます
- PASSWORD_EXPIRATION_DURATION: パスワードが期限切れになるまでの日数。この期限が過ぎると、ユーザーは新しいパスワードを作成する必要があります
HTTP メソッドと URL:
PUT https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users?name=USER_ID
リクエストの本文(JSON):
{
"name": "USER_ID",
"password": "PASSWORD",
"data":
{
"passwordValidationUserPolicy" : {
{
"enableFailedAttemptsCheck" : "FAILED_ATTEMPTS_CHECK",
"allowedFailedAttempts" : "NUMBER_OF_ATTEMPTS",
"passwordExpirationDuration" : "PASSWORD_EXPIRATION_DURATION"
}
},
}
}リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
ユーザー パスワード ポリシーを表示するには、ユーザーを一覧表示するをご覧ください。
REST v1beta4
ユーザー パスワード ポリシーを設定するには、users:update メソッドで PUT リクエストを使用します。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: プロジェクト ID
- INSTANCE_ID: インスタンス ID
- USER_ID: ユーザーの ID
- PASSWORD: ユーザーのパスワード
- FAILED_ATTEMPTS_CHECK:
trueに設定すると、ログイン試行の失敗回数のチェックが有効になり、上限に達するとアカウントがロックされます - NUMBER_OF_ATTEMPTS: ログイン試行の失敗回数。この回数を超えるとアカウントがロックされます
- PASSWORD_EXPIRATION_DURATION: パスワードが期限切れになるまでの日数。この期限が過ぎると、ユーザーは新しいパスワードを作成する必要があります
HTTP メソッドと URL:
PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users?name=USER_ID
リクエストの本文(JSON):
{
"name": "USER_ID",
"password": "PASSWORD",
"data":
{
"passwordValidationUserPolicy" : {
{
"enableFailedAttemptsCheck" : "FAILED_ATTEMPTS_CHECK",
"allowedFailedAttempts" : "NUMBER_OF_ATTEMPTS",
"passwordExpirationDuration" : "PASSWORD_EXPIRATION_DURATION"
}
},
}
}リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
ユーザー パスワード ポリシーを表示するには、ユーザーを一覧表示するをご覧ください。
ユーザーを一覧表示する
コンソール
-
Google Cloud コンソールで、Cloud SQL の [インスタンス] ページに移動します。
- インスタンスの [概要] ページを開くには、インスタンス名をクリックします。
- SQL ナビゲーション メニューから [ユーザー] を選択します。
gcloud
gcloud sql users list コマンドを使用して、このインスタンスのユーザーを一覧表示します。
gcloud sql users list \ --instance=INSTANCE_NAME
このコマンドは、各ユーザーの Name、Host、認証 Type を返します。
さらに、組み込み認証タイプの場合は、パスワード ポリシーの設定とステータスが返されます。例:
NAME HOST TYPE PASSWORD_POLICY
user1 BUILT_IN {'allowedFailedAttempts': 2,
'enableFailedAttemptsCheck': True,
'passwordExpirationDuration': '7d',
'status': {
'locked': True,
'passwordExpirationTime': '2022-07-01T19:53:45.822742904Z'
}
}
REST v1
インスタンスに定義されているユーザーを一覧表示するには、users:list メソッドで GET リクエストを使用します。
リクエストのデータを使用する前に、次のように置き換えます。
- project-id: プロジェクト ID
- instance-id: 目的のインスタンス ID
HTTP メソッドと URL:
GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/users
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{
"kind": "sql#usersList",
"items": [
{
"kind": "sql#user",
"etag": "--redacted--",
"name": "sqlserver",
"host": "",
"instance": "instance-id",
"project": "project-id",
"sqlserverUserDetails": {
"serverRoles": [
"CustomerDbRootRole"
]
}
},
{
"kind": "sql#user",
"etag": "--redacted--",
"name": "user-id-1",
"host": "",
"instance": "instance-id",
"project": "project-id",
"sqlserverUserDetails": {
"serverRoles": [
"CustomerDbRootRole"
]
}
},
{
"kind": "sql#user",
"etag": "--redacted--",
"name": "user-id-2",
"host": "",
"instance": "instance-id",
"project": "project-id",
"sqlserverUserDetails": {
"serverRoles": [
"CustomerDbRootRole"
]
}
},
{
...
},
{
...
}
]
}
ユーザー パスワード ポリシーが設定されている場合、レスポンスの items セクションに passwordPolicy セクションが含まれます。次のコードサンプルは passwordPolicy セクションを示します。
{
...
"passwordValidationUserPolicy" : {
{
"enableFailedAttemptsCheck" : true,
"allowedFailedAttempts" : 8,
"passwordExpirationDuration" : "7d"
}
},
...
}
REST v1beta4
インスタンスに定義されているユーザーを一覧表示するには、users:list メソッドで GET リクエストを使用します。
リクエストのデータを使用する前に、次のように置き換えます。
- project-id: プロジェクト ID
- instance-id: 目的のインスタンス ID
HTTP メソッドと URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{
"kind": "sql#usersList",
"items": [
{
"kind": "sql#user",
"etag": "--redacted--",
"name": "sqlserver",
"host": "",
"instance": "instance-id",
"project": "project-id",
"sqlserverUserDetails": {
"serverRoles": [
"CustomerDbRootRole"
]
}
},
{
"kind": "sql#user",
"etag": "--redacted--",
"name": "user-id-1",
"host": "",
"instance": "instance-id",
"project": "project-id",
"sqlserverUserDetails": {
"serverRoles": [
"CustomerDbRootRole"
]
}
},
{
"kind": "sql#user",
"etag": "--redacted--",
"name": "user-id-2",
"host": "",
"instance": "instance-id",
"project": "project-id",
"sqlserverUserDetails": {
"serverRoles": [
"CustomerDbRootRole"
]
}
},
{
...
},
{
...
}
]
}
ユーザー パスワード ポリシーが設定されている場合、レスポンスの items セクションに passwordPolicy セクションが含まれます。次のコードサンプルは passwordPolicy セクションを示します。
{
...
"passwordValidationUserPolicy" : {
{
"enableFailedAttemptsCheck" : true,
"allowedFailedAttempts" : 8,
"passwordExpirationDuration" : "7d"
}
},
...
}
psql クライアント
psql プロンプトで、PostgreSQL ユーザーの一覧を表示します。
SELECT * FROM pg_roles;
ユーザーのパスワードを変更する
ユーザーのパスワードは、次のいずれかの方法で変更できます。
コンソール
-
Google Cloud コンソールで、Cloud SQL の [インスタンス] ページに移動します。
- インスタンスの [概要] ページを開くには、インスタンス名をクリックします。
- SQL ナビゲーション メニューから [ユーザー] を選択します。
- 更新するユーザーのその他アイコン
をクリックします。
- [パスワードの変更] を選択します。
- 新しいパスワードを指定します。
- [OK] をクリックします。
gcloud
gcloud sql users set-password コマンドを使用してパスワードを変更します。
次のように置き換えます。
- USER_NAME: ユーザー名。
- INSTANCE_NAME: インスタンスの名前。
gcloud sql users set-password USER_NAME \ --instance=INSTANCE_NAME \ --prompt-for-password
REST v1
ユーザー パスワードを変更するには、users:update メソッドで PUT リクエストを使用します。
次のリクエストでは、ユーザー アカウント user_name のパスワードを更新します。
リクエストのデータを使用する前に、次のように置き換えます。
- project-id: プロジェクト ID
- instance-id: 目的のインスタンス ID
- user-id: ユーザーの ID
- password: ユーザーの新しいパスワード
HTTP メソッドと URL:
PUT https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/users?name=user-id
リクエストの本文(JSON):
{
"name": "user-id",
"password": "password"
}
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id",
"status": "DONE",
"user": "[email protected]",
"insertTime": "2020-02-07T22:38:41.217Z",
"startTime": "2020-02-07T22:38:41.217Z",
"endTime": "2020-02-07T22:38:44.801Z",
"operationType": "UPDATE_USER",
"name": "operation-id",
"targetId": "instance-id",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id",
"targetProject": "project-id"
}
REST v1beta4
ユーザー パスワードを変更するには、users:update メソッドで PUT リクエストを使用します。
次のリクエストでは、ユーザー アカウント user_name のパスワードを更新します。
リクエストのデータを使用する前に、次のように置き換えます。
- project-id: プロジェクト ID
- instance-id: 目的のインスタンス ID
- user-id: ユーザーの ID
- password: ユーザーの新しいパスワード
HTTP メソッドと URL:
PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users?name=user-id
リクエストの本文(JSON):
{
"name": "user-id",
"password": "password"
}
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
"status": "DONE",
"user": "[email protected]",
"insertTime": "2020-02-07T22:38:41.217Z",
"startTime": "2020-02-07T22:38:41.217Z",
"endTime": "2020-02-07T22:38:44.801Z",
"operationType": "UPDATE_USER",
"name": "operation-id",
"targetId": "instance-id",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
"targetProject": "project-id"
}
psql クライアント
psql プロンプトで、ALTER USER コマンドを実行します。- ユーザーのロックを解除します。
ALTER USER USER_NAME WITH LOGIN;
- パスワードを変更します。プロンプトが表示されたらパスワードを入力します。
ALTER USER USER_NAME WITH PASSWORD PASSWORD;
パスワード ポリシーの設定によりユーザーがロックされた場合は、パスワードを変更してロックを解除します。変更後、パスワードがパスワード ポリシーを遵守していることを確認します。
ユーザー パスワード ポリシーを削除する
認証タイプが組み込まれているユーザーからパスワード ポリシーを削除できます。
gcloud
ユーザー パスワード ポリシーを削除するには、gcloud sql users set-password-policy コマンドと --clear-password-policy パラメータを使用します。
次のように置き換えます。
- USER_NAME: ユーザー名
- INSTANCE_NAME: インスタンスの名前
- HOST: 特定の IP アドレス、アドレス範囲、または任意のホストとしてのユーザーのホスト名(
%)
gcloud sql users set-password-policy USER_NAME \ --instance=INSTANCE_NAME \ --host=HOST \ --clear-password-policy
REST v1
ユーザー パスワード ポリシーを削除するには、users:update メソッドで PUT リクエストを使用します。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: プロジェクト ID
- INSTANCE_ID: インスタンス ID
- USER_ID: ユーザーの ID
- PASSWORD: ユーザーのパスワード
HTTP メソッドと URL:
PUT https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users?name=USER_ID
リクエストの本文(JSON):
{
"name": "USER_ID",
"password": "PASSWORD",
"data":
{
"passwordValidationUserPolicy" : {}
}
}リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
REST v1beta4
ユーザー パスワード ポリシーを削除するには、users:update メソッドで PUT リクエストを使用します。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: プロジェクト ID
- INSTANCE_ID: インスタンス ID
- USER_ID: ユーザーの ID
- PASSWORD: ユーザーのパスワード
HTTP メソッドと URL:
PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users?name=USER_ID
リクエストの本文(JSON):
{
"name": "USER_ID",
"password": "PASSWORD",
"data":
{
"passwordValidationUserPolicy" : {}
}
}リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
ユーザーを削除する
デフォルト ユーザーはユーザーを削除できます。
ユーザーを削除する前に、そのユーザーが所有するすべてのオブジェクトを削除するか、ユーザーの所有権の割り当てを変更して、他のオブジェクトにロールが付与されている権限をすべて取り消す必要があります。
コンソール
-
Google Cloud コンソールで、Cloud SQL の [インスタンス] ページに移動します。
- インスタンスの [概要] ページを開くには、インスタンス名をクリックします。
- SQL ナビゲーション メニューから [ユーザー] を選択します。
- 削除するユーザーのその他アイコン
をクリックします。 - [削除] を選択して、もう一度 [削除] を選択します。
gcloud
gcloud sql users delete コマンドを使用して、ユーザーを削除します。
次のように置き換えます。
- USER_NAME: ユーザー名。
- INSTANCE_NAME: インスタンスの名前。
gcloud sql users delete USER_NAME \ --instance=INSTANCE_NAME
REST v1
以下のリクエストでは、users:delete メソッドを使用して、指定したユーザー アカウントを削除します。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: プロジェクト ID
- INSTANCE_ID: 目的のインスタンス ID
- USERNAME: ユーザーまたはサービス アカウントのメールアドレス
HTTP メソッドと URL:
DELETE https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users?host=&name=USERNAME
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "DONE",
"user": "[email protected]",
"insertTime": "2020-02-07T22:38:41.217Z",
"startTime": "2020-02-07T22:38:41.217Z",
"endTime": "2020-02-07T22:38:44.801Z",
"operationType": "DELETE_USER",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
REST v1beta4
以下のリクエストでは、users:delete メソッドを使用して、指定したユーザー アカウントを削除します。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: プロジェクト ID
- INSTANCE_ID: 目的のインスタンス ID
- USERNAME: ユーザーまたはサービス アカウントのメールアドレス
HTTP メソッドと URL:
DELETE https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users?host=&name=USERNAME
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "DONE",
"user": "[email protected]",
"insertTime": "2020-02-07T22:38:41.217Z",
"startTime": "2020-02-07T22:38:41.217Z",
"endTime": "2020-02-07T22:38:44.801Z",
"operationType": "DELETE_USER",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
psql クライアント
psqlプロンプトで、ユーザーを削除します。DROP ROLE USER_NAME;
DROP ROLEステートメントの詳細については、PostgreSQL のドキュメントをご覧ください。
ユーザー プロパティを更新する
属性などのユーザー プロパティを更新するには、psql クライアントを使用する必要があります。詳細については、PostgreSQL ドキュメントのデータベースの役割をご覧ください。
次のステップ
- Cloud SQL でのユーザーの操作の詳細について学習する。
- ロールの作成に関する PostgreSQL ドキュメントを読む。
- インスタンスへの接続について学習する。