我正在尝试在PostgreSQL中创建一个管理员角色/用户,该管理员角色/用户应满足以下要求:
这是我到目前为止所拥有的:
create role dba with nosuperuser createdb createrole nologin replication bypassrls;
grant usage on schema public to dba;
alter default privileges in schema public grant all on tables to dba;
alter default privileges in schema public grant all on sequences to dba;
grant connect on database myDatabase to dba;
grant usage on schema public to dba;
grant select on all tables in schema public to dba;
grant select on all sequences in schema public to dba;
grant all privileges on all tables in schema public to dba;
create user dba_user login inherit encrypted password 'password' in role dba;
请告知如何修改以上代码以满足要求。
答案 0 :(得分:1)
要实现这一点,请执行以下修改:
将数据库及其所有架构和对象的所有权转让给新用户。
给用户CREATEROLE
。
确保REVOKE CONNECT ON
所有数据库FROM PUBLIC
。向新用户授予有关数据库的CONNECT
特权。
请勿授予新用户任何其他数据库或其中对象的权限。