rch*_*rch 6 postgresql permissions postgresql-9.4
我正在尝试创建一个 postgresql 用户,该用户可以选择但不能在数据库上创建或删除、插入等,但我终生无法弄清楚如何阻止用户创建自己的表。
到目前为止我所做的:
create database test;
create role readonly;
alter role readonly with login;
alter role readonly with encrypted password 'test';
revoke all on schema public from public;
revoke all on schema public from readonly;
revoke all on database test from public;
revoke all on database test from readonly;
grant connect on database test to readonly;
Run Code Online (Sandbox Code Playgroud)
然而,当我以只读身份登录到数据库时,我仍然可以不受惩罚地创建表。我错过了什么?
根据文档,在模式中创建表所需的内容是CREATE在该模式上。您认为您撤销了此操作,但根据您的经验,这并没有真正发生 - 唯一合理的解释是Daniel 的评论:您正在撤销对另一个数据库模式的访问权限。
当您清除它时,您仍然需要授予/撤销以下内容:
GRANT USAGE ON SCHEMA public TO readonly; 能够访问那里的对象REVOKE ALL ON ALL TABLES IN SCHEMA public FROM public, readonly;GRANT SELECT ON ALL TABLES IN SCHEMA public TO readonly;| 归档时间: |
|
| 查看次数: |
11277 次 |
| 最近记录: |