2017-05-26 1 views
0

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をバイパスする必要がありますか?

答えて

0

私の経験から、Web ui/cliツールを完全にバイパスする必要があるようです。 あなたはCLIツールを介してデータベースを作成します。

gcloud sql databases create DBNAME --instance INSTANCE 

それはそれの音からGUIで同じ、cloudsqlsuperuserに所有権を割り当てます。

私は、具体的CLIツールを介してユーザを作成しました:

gcloud sql users create USER 'host' --instance INSTANCE 

これらのユーザーがcloudsqlsuperuserと同じ権限を取得します。この場合、データベースの所有権を変更することは可能です。私は、データベースとランニングを所有したいユーザーとして接続にpsqlコマンドで成功を収めて:

ALTER DATABASE database OWNER TO user; 

ただし、ユーザーがpsqlを経て作成された場合(CLIをglcoudない)、その後、許可が同じで、上記ではありません失敗しました。

あなたのインスタンスを作成し、ツールを使用して 'postgres'ユーザーのパスワードを設定し、そこからpsqlをインスタンスに設定して、必要なものをSQLコマンドで実行したいと思います。私はツールがいくつかのことをとてもうまくやっていると思うが(UIはそうだが)、後でその痛みがある。

誰かが分かっていれば、デフォルトのgcloudユーザーでどのように作業できるか聞いてみたいと思います。

関連する問題