GoogleのSQLクラウドPostgresサービスでは、PostgreSQLインスタンス用のWebコンソール経由でデータベースを作成すると、自動的にデータベースのデフォルトの「パブリック」スキーマの所有者をcloudsqladminに設定します。私が所有権を変更することはできませんようだ:Googleコンソールから作成したデータベースでパブリックスキーマの所有者を変更するにはどうすればよいですか?
mydb=> \dn
List of schemas
Name | Owner
--------+---------------
public | cloudsqladmin
(1 row)
mydb=> alter schema public owner to postgres;
ERROR: must be owner of schema public
mydb=> \du
List of roles
Role name | Attributes | Member of
-------------------+------------------------------------------------+---------------------
cloudsqladmin | Superuser, Create role, Create DB, Replication | {}
cloudsqlagent | Create role, Create DB | {cloudsqlsuperuser}
cloudsqlreplica | Replication | {}
cloudsqlsuperuser | Create role, Create DB | {}
pg_signal_backend | Cannot login | {}
postgres | Create role, Create DB | {cloudsqlsuperuser}
mynewuser | Create role, Create DB | {cloudsqlsuperuser}
私もWebコンソールを通じて "mynewuser" を作成し、 "cloudsqlsuperuser" グループから "mynewuser" を削除することはできません。
mydb=> alter group cloudsqlsuperuser drop user mynewuser;
ERROR: "cloudsqlsuperuser" can't be altered
場合I新しいユーザーだけがアクセス権を持ち(所有している)公開スキーマを使用してデータベースを作成したければ、Google Web UIの外部でこれを行う必要がありますか?私が作成したデータベースはcloudsqladminが所有しているようですが、私が作成したユーザーは "cloudsqlsuperuser"のメンバーです。ユーザの権限を制限したいのであれば、そのユーザをpsql経由で通常作成し、Web UIをバイパスする必要がありますか?