[解決済み] ERROR: Postgres で読み取り専用ユーザーとして SELECT を実行中に、リレーションの tablename に対してパーミッションが拒否されました。
2023-02-23 22:27:45
質問
GRANT SELECT ON ALL TABLES IN SCHEMA public TO readonly;
リードオンリーユーザーは接続でき、テーブルを見ることができますが、単純なselectを行おうとすると
ERROR: permission denied for relation mytable
SQL state: 42501
この現象はPostgreSQL 9.1上で発生しています。
何がいけなかったのでしょうか?
どのように解決するのですか?
ここでは、PostgreSQL 9+の完全な解決策を紹介します。
CREATE USER readonly WITH ENCRYPTED PASSWORD 'readonly';
GRANT USAGE ON SCHEMA public to readonly;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO readonly;
-- repeat code below for each database:
GRANT CONNECT ON DATABASE foo to readonly;
\c foo
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO readonly; --- this grants privileges on new tables generated in new database "foo"
GRANT USAGE ON SCHEMA public to readonly;
GRANT SELECT ON ALL SEQUENCES IN SCHEMA public TO readonly;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO readonly;
おかげさまで https://jamie.curle.io/creating-a-read-only-user-in-postgres/ にはいくつかの重要な側面があります。
もし誰かがより短いコード、できればすべての既存のデータベースに対してこれを実行できるコードを見つけたら、さらに賞賛を送ります。
関連
-
[解決済み] 未知語からテキストへの変換関数の検索に失敗しました。
-
[解決済み] エラーが発生しました。pgsqlをrailsで動作させようとすると、Peer authentication failed for user "postgres" と表示されます。
-
[解決済み] コマンドライン引数でPostgreSQLの.sqlファイルを実行する
-
[解決済み] 'ユーザー "postgres" のパスワード認証に失敗しました'
-
[解決済み] リレーションシップのパーミッションが拒否されました
-
[解決済み] Postgres で、あるデータベースから別のデータベースにテーブルをコピーする
-
[解決済み] Postgres/SQLで2つの整数の最小値/最大値を取得する方法は?
-
[解決済み] PostgreSQL: ロールのログインが許可されていない
-
[解決済み] Postgresqlで「挿入無視」と「重複キー更新」(SQLマージ)をエミュレートする方法は?
-
[解決済み] PostgreSQLでトリガーを一時的に無効にするにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Postgresqlの高度なアプリケーションは、セルのアイデアをマージするの詳細
-
Postgresqlのデータベース権限まとめ
-
postgreSQLのクエリ結果に自己インクリメントシーケンス演算が追加されました。
-
postgresqlのjsonbデータの問い合わせと変更方法
-
[解決済み] PostgreSQLの "DESCRIBE TABLE"
-
[解決済み] PostgreSQLのユーザーパスワードを変更する方法を教えてください。
-
[解決済み] PostgreSQLの場合。PostgreSQLですべてのテーブルのOWNERを同時に変更する
-
[解決済み] リレーションシップのパーミッションが拒否されました
-
[解決済み] PostgreSQLのINSERT ON CONFLICT UPDATE(upsert)は除外された値をすべて使用します。
-
[解決済み] PostgreSQLでカラムのデフォルト値を変更するにはどうすればよいですか?