【发布时间】:2020-09-26 12:10:21
【问题描述】:
我的应用程序有一个 Heroku Postgres 数据库。我可以使用 Heroku 提供的 DATABASE_URL 轻松访问 psql shell
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=>
默认情况下,此用户似乎拥有更新和删除表的完全访问权限
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
.....
我很想在数据库中设置“只读”用户,这样人们就可以查看这些数据,而不必担心运行“DROP TABLE”或其他一些破坏性命令。
如何在 Heroku Postgres 上设置只读用户?
谢谢!
【问题讨论】:
标签: sql postgresql heroku readonly