1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【postgreSQL】permission denied for table テーブル名

Posted at

はじめに

この記事では初心者エンジニアがエラーにぶち当たった時にどう回避したかを記載していきます。
また、私自身が調べて実際にどのようにエラーから回避できたのかを記録することにより見返すことができるため、Qiitaを利用していきます。
質問があればぜひコメント欄に記入して下さい。できる範囲でお答えさせていただきます。

動作環境

・Mac OS 12.1
・psql (PostgreSQL) 14.2
・pgAdmin4

参考テキスト

今回はpostgreSQL(略してポスグレ)の内容となっています。OSS-DB silverの試験がありpostgreSQLの内容となっています。
私も8月か9月に受けようと思い、テキストを購入しました。
SQLの内容がしっかり書かれている本なので非常に分かりやすいかったです。少しお高めかもしれませんがおすすめの本です!参考にしてみてください。

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

OSS教科書 OSS-DB Silver Ver2.0対応 (EXAMPRESS...
価格:4378円(税込、送料無料) (2022/8/3時点)


エラー内容

前回の投稿(【PostgreSQL 】csvファイルの読み込み(前処理大全より))より、csvを読み込んだ後、以下のコードでテーブルデータを確認しようとしたところエラーが出てしまいました。

全データの抽出
select * from 前処理.hotel_tb;

ERROR: permission denied for table hotel_tb;

エラー内容を訳すと「テーブルに対する権限を拒否する」です。
ここでterminalに戻りメタコマンドの\duでデータベースユーザの一覧を確認してみます。

データベースユーザの一覧
postgres=# \du
                                   List of roles
 Role name |                         Attributes                         | Member of 
-----------+------------------------------------------------------------+-----------
 kentaro   | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
 postgres  | Create DB                                                  | {}

ユーザーはrolenameに記載されています。そしてAttributesには、ユーザーに与えられる権限が付与されており、kentaroはスーパーユーザーのため全ての権限が与えられています。しかし一般ユーザーであるpostgresには、Create DBの権限しか与えられていません。恐らく権限の少ないpostgresユーザーでpgAdmin4にアクセスしているためだと考えられます。(間違っていたらすみません💦)
Attributesに記載されているそれぞれの権限の説明は[OSS教科書 OSS-DB Silver Ver2.0対応] に記載されていますので確認してみて下さい。

解決 GRANTコマンドの使用

GRANTコマンドで権限を与えてみいと思います。

権限の付与
GRANT SELECT, INSERT ON 前処理.hotel_tb To postgres;

GRANTコマンドにより今回はSELECTとINSERTのコマンドを使用していいよという権限与えてみました。
他にも与えられる権限としては、UPDDATE |DELETE |TRUNCATE |REFERENCES |TRIGGER を付与することができます。
また、それぞれの権限についても[OSS教科書 OSS-DB Silver Ver2.0対応] をご確認してみて下さい。

最初にコーディングしたテーブルデータの確認をしてみた結果が以下の写真の通り成功していることが分かります。
pgAdmin4

成功しました!

終わりに

今回で2回目の投稿となりました。私はアホなので初心者なりにわからなかったことはQiitaで発信していきたいと思います。間違っているいたり、質問のある方はぜひご指摘ください!

参考文献

[OSS教科書 OSS-DB Silver Ver2.0対応]
ロールにテーブルやビューなどに対する権限を追加する

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?