サンプル集  >  other  >  iPhoneで動画ファイル再生
PostgreSQL permission denied for relation
2018/02/04

PostgreSQLでUPDATEを実行したところ「permission denied for relation」というエラーが出ました。

g01pre=> UPDATE MST_BRANCH set BRANCH_CODE = '0001';
ERROR:  permission denied for relation mst_branch

◆環境
PostgreSQL psql (9.6.6, サーバー 9.6.2)

更新しようとしたテーブルのオーナーとSQLを実行しているオーナーが違うとこのエラーが出るそうです。

それぞれ確認してみます。

SQLを実行しようとしているオーナーは、psqlで接続するときに指定したユーザー名だと思います。

psqlで接続したときのコマンド
psql -h rdst01 -U g01pre -d g01pre

ユーザーは-Uオプションで「g01pre」を指定しています。

続いて対象テーブルのオーナーを調べます。

g01pre=> \dt mst_branch
            リレーションの一覧
 スキーマ  |    名前    |    型    | 所有者
-----------+------------+----------+--------
 g01pre    | mst_branch | テーブル | g01
(1 行)

テーブルのオーナー(所有者)はg01でした。

テーブルのオーナーをg01preへ変更します。

g01pre=> alter table g01pre.mst_branch owner to g01pre;

もう一度同じSQLを実行したところ正常にUPDATEできました。

g01pre=> UPDATE MST_BRANCH set BRANCH_CODE = '0001';
UPDATE 29

▲ PageTop  ■ Home


Copyright (C) 2018 ymlib.com