[postgreSQL] SQLを実行すると”must be owner of relation テーブル名” が発生したときの対処

スポンサーリンク
postgreSQL

あるユーザーが所有しているスキーマのあるテーブルに対し、別のユーザーからSQLを実行すると「must be owner of relation テーブル名」のエラーが発生しました。

その時の対処方法を載せておきます。

事象の整理

例として、postgreのデータベースの状態が、以下の図の構成とします。

やりたいこと
postgresユーザーが所有するmashiスキーマにあるproductテーブルに対し、guestユーザーが変更を実施。

実際に、guestユーザーからproductテーブルにalterやcommentで変更をかけようとすると、
”must be owner of relation product” が発生しました。

guestユーザーで実行

なお、”permission denied for schema” が発生する場合は、スキーマへのアクセス件が不足しています。

対処方法

所有者でないと、変更をかけられないとのことなので、postgresの権限をguestに付与します。
コマンドは以下の通り。

GRANT postgres TO guest;

すると、正常に実行できるようになりました。


guestユーザーで実行

コメント

タイトルとURLをコピーしました