私のアプリケーション用のHeroku Postgresデータベースを持っています。私が設定してみたい Heroku Postgresデータベースの読み取り専用アクセス
d5i032ahpfiv07=> SELECT
table_name,
string_agg(privilege_type, ', ') as privileges
FROM information_schema.role_table_grants
WHERE table_schema = 'public'
AND grantee = current_user
GROUP BY 1
;
table_name | privileges
-----------------------------------+---------------------------------------------------------------
articles | INSERT, TRIGGER, REFERENCES, TRUNCATE, DELETE, UPDATE, SELECT
comment_flags | TRIGGER, INSERT, SELECT, UPDATE, DELETE, TRUNCATE, REFERENCES
comment_likes | TRUNCATE, REFERENCES, TRIGGER, INSERT, SELECT, UPDATE, DELETE
comments | INSERT, SELECT, UPDATE, DELETE, TRUNCATE, REFERENCES, TRIGGER
communities | TRIGGER, REFERENCES, TRUNCATE, DELETE, UPDATE, SELECT, INSERT
.....
を私は簡単に
psql $(heroku config:get DATABASE_URL -a my_app)
psql (9.6.1)
SSL connection (protocol: TLSv1.2, cipher: ECDSE-RSA-AES256-GCM-SHA384, bits: 256, compression: off)
Type "help" for help.
d5i032ahpfiv07=>
Herokuのから提供
DATABASE_URL
を使用して
psql
シェルにアクセスすることができ、デフォルトで、このユーザーは、テーブルを更新し、ドロップする完全なアクセス権を持っているようです"DROP TABLE"や他の破壊的なコマンドを実行する恐れがなく、人々がこのデータを見ることができるように、データベース内の "読み取り専用"ユーザ。
Heroku Postgresで読み取り専用ユーザーを設定するにはどうすればよいですか?
ありがとうございました!
ありがとう、それは良い解決策です。小さなフォローアップ:誰かが誤ってフォロワーに破壊的なコマンドを実行した場合、データを再構築する必要がありますか?それが起こった場合、どのように警告することができますか?フォロワーの状態をリーダーと比較する方法があると思いますか? – user2490003
私はそれが読み取り専用なのでフォロワで実行される破壊的なコマンドは不可能だと思っていますが、私は同じことをちょうど今に思っていました.... – manisha