什么是PostgreSQL表所有者?

时间:2015-11-21 09:10:09

标签: postgresql

我不确定PostgreSQL表所有者的含义。我注意到它改变了表本身的属性而不是所有者的属性,因为它是通过

指定的
ALTER table SET OWNER role;

2 个答案:

答案 0 :(得分:7)

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

select * from pg_tables where tablename = 'my_tbl';

或者您可以查看某些所有者的所有表:

select * from pg_tables where tableowner = 'username';

答案 1 :(得分:6)

所有者是(如果没有其他事情发生)创建表的用户(角色)。因此,如果用户arthur运行create table foo (id integer),则arthur 拥有该表。

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

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