我的Heroku Postgres數據庫用於我的應用程序。我可以很容易地使用從Heroku的Heroku Postgres數據庫的只讀訪問
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=>
,默認情況下提供DATABASE_URL
,該用戶似乎有充分的機會來更新和刪除表
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
殼我很想成立數據庫中的「只讀」用戶,這樣人們可以查看這些數據,而不必擔心運行「DROP TABLE」或其他破壞性命令。
我該如何設置Heroku Postgres上的只讀用戶?
謝謝!
謝謝,這是一個不錯的解決方案。小型後續行動:如果有人不小心對追隨者發出了破壞性命令,我將不得不重建它的數據?如果發生這種情況,我該如何提醒(或手動檢查)?我確信有一些方法可以將追隨者的狀態與領導者進行比較? – user2490003
我猜測這是不可能的,因爲它是隻讀的,因此破壞性的命令可以在追隨者上運行,但我也只是想知道同樣的事情。 – manisha