什么是PostgreSQL表所有者?

什么是PostgreSQL表所有者?,postgresql,Postgresql,我不确定表所有者是什么意思。我注意到它更改了表本身的属性,而不是关于所有者的属性,因为它是通过 ALTER TABLE table_name OWNER TO role_name; 所有者是创建表的用户(角色)(如果没有发生其他情况)。因此,如果用户arthur运行createtablefoo(id integer),arthur拥有该表 表的所有者拥有该表的所有权限,包括删除该表的权限。或授予其他用户(角色)访问该表的权限 由pg_dump生成的SQL脚本通常包括alter table se

我不确定表所有者是什么意思。我注意到它更改了表本身的属性,而不是关于所有者的属性,因为它是通过

ALTER TABLE table_name OWNER TO role_name;
所有者是创建表的用户(角色)(如果没有发生其他情况)。因此,如果用户
arthur
运行
createtablefoo(id integer)
arthur
拥有该表

表的所有者拥有该表的所有权限,包括删除该表的权限。或授予其他用户(角色)访问该表的权限


pg_dump
生成的SQL脚本通常包括
alter table set owner…
语句,因为这些脚本将由DBA运行,在这种情况下,所有表都将由DBA拥有,这意味着“真实”所有者无法更改或访问表。

您可以在某些表中看到谁是所有者:

select * from pg_tables where tablename = 'my_tbl';
或者您可以查看特定所有者的所有表:

select * from pg_tables where tableowner = 'username';

非常感谢!只有一件事:在前面的示例中,用户'arthur'可以将表'foo'上的权限授予其他角色吗?@JonathanGinsburg:当然可以。主人几乎可以做任何事情。他不回答这个问题。尽管如此,还是很有帮助的。