あるユーザーが所有しているスキーマのあるテーブルに対し、別のユーザーから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ユーザーで実行
コメント