| サンプル集 |
|
■VC ■C# ■Java ■BorlandC ■LinuxC ■MS-DOS ■bash ■Excel VBA ■VBScript ■PHP ■HTML ■perl ■iPhone ■Android ■Lua ■other |
| Linuxコマンド |
| 用語集 |
| debian メモ |
| apache2 メモ |
| MySQL メモ |
| Oracle メモ |
| HOME |
PostgreSQLでUPDATEを実行したところ「permission denied for relation」というエラーが出ました。
g01pre=> UPDATE MST_BRANCH set BRANCH_CODE = '0001';
ERROR: permission denied for relation mst_branch
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
psql -h rdst01 -U g01pre -d g01pre
ユーザーは-Uオプションで「g01pre」を指定しています。
続いて対象テーブルのオーナーを調べます。
g01pre=> \dt mst_branch
リレーションの一覧
スキーマ | 名前 | 型 | 所有者
-----------+------------+----------+--------
g01pre | mst_branch | テーブル | g01
(1 行)
リレーションの一覧
スキーマ | 名前 | 型 | 所有者
-----------+------------+----------+--------
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
UPDATE 29
Copyright (C) 2018 ymlib.com
