PostgreSQL ユーザー

ここでは、Cloud SQL での PostgreSQL ユーザーとロールの操作方法について説明します。PostgreSQL のロールを使用すると、PostgreSQL インスタンスにアクセスするユーザーのアクセス権と機能を制御できます。

PostgreSQL のロールの詳細については、PostgreSQL の資料をご覧ください。Cloud SQL ユーザーの作成と管理について詳しくは、ユーザーを作成して管理するをご覧ください。

PostgreSQL の役割とユーザー

PostgreSQL のロールは、単一のロールにすることも、複数のロールのグループとして機能させることもできます。ユーザーとは、ログインする機能を持つロールです(ロールが LOGIN 属性を持つ)。Cloud SQL で作成されるすべてのロールは LOGIN 属性を持つため、Cloud SQL では「ロール」と「ユーザー」という言葉が同じ意味で使用されます。ただし、psql クライアントでロールを作成した場合、そのロールは必ずしも LOGIN 属性を持つわけではありません。

すべての PostgreSQL ユーザーにはパスワードが必要です。パスワードを持たないユーザーでログインすることはできません。

スーパーユーザーの制限

Cloud SQL for PostgreSQL はマネージド サービスであるため、高度な権限が必要な特定のシステム プロシージャやテーブルへのアクセスを制限します。Cloud SQL では、スーパーユーザー属性を持つユーザーの作成、またそのようなユーザーへのアクセスはできません。

デフォルトの PostgreSQL ユーザー

新しい Cloud SQL for PostgreSQL インスタンスを作成すると、デフォルトの管理ユーザー postgres が作成されますが、パスワードは作成されません。ログインするには、このユーザーのパスワードを設定する必要があります。設定するには、Google Cloud Console または次の gcloud コマンドを使用します。

gcloud sql users set-password postgres \
--instance=INSTANCE_NAME \
--password=PASSWORD

postgres ユーザーは cloudsqlsuperuser ロールに含まれ、CREATEROLECREATEDBLOGIN 属性(特権)を持っています。SUPERUSER または REPLICATION 属性は持っていません。

デフォルトの cloudsqlimportexport ユーザーは、CSV のインポート / エクスポート オペレーションに必要な最小限の権限で作成されます。これらのオペレーションを実行する独自のユーザーを作成することもできますが、作成しない場合はデフォルトの cloudsqlimportexport ユーザーが使用されます。cloudsqlimportexport ユーザーはシステム ユーザーであり、ユーザーが直接使用することはできません。

IAM データベース認証のための Cloud SQL IAM ユーザー

IAM は、IAM データベース認証と呼ばれる機能で Cloud SQL と統合されています。この機能を使用してインスタンスを作成すると、IAM ユーザーはその IAM ユーザー名とパスワードを使用してインスタンスにログインできます。IAM データベース認証を使用する利点は、データベースへのアクセスを許可する際に、ユーザーの既存の IAM 認証情報を使用できることです。ユーザーが組織を離れた場合、ユーザーの IAM アカウントは一時停止され、自動的にアクセス権が削除されます。IAM データベース認証の詳細については、IAM データベース認証の概要をご覧ください。

その他の PostgreSQL ユーザー

その他の PostgreSQL ユーザーを作成、またはその他の PostgreSQL ロールを作成できます。Cloud SQL を使用して作成されるユーザーはすべて、作成時に cloudsqlsuperuser 役割が設定され、postgres ユーザーと同じ属性セット(CREATEROLECREATEDBLOGIN)が設定されます。ALTER ROLE コマンドを使用すると、任意のユーザーの属性を変更できます。

psql クライアントで新しいユーザーを作成する場合、そのユーザーを別の役割に関連付けたり、別の属性を指定したりできます。

次のステップ