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}';