Skip to main content

PostgreSQL 权限设定

应用场景

我们需要一个账号统一管理影响表结构的操作。而其他账号用于维护数据,系统链接。

那么在PostgreSQL中,创建表的所有人拥有对该表的管理操作,如果想要收回这个权限,只需要转移owner即可。

change owner

ALTER TABLE {table} OWNER TO {account}

privileges

GRANT ALL ON {table} TO {account};

batch

其思想就是 用 concat 函数拼接字符串。然后复制到 excel 里核对,再执行即可。

select concat('ALTER TABLE ',tablename,' OWNER TO {account}') 
from pg_tables where "tableowner" = '{account}'

一些其他有用的语句

查看表属性

select * from pg_tables where "tableowner" = '{account}';

查看自增序列属性

select sequencename, sequenceowner from pg_sequences where sequenceowner = '{account}'

查看表权限

select * from information_schema.table_privileges where grantee='{account}';

Ref: