Postgresql - 选择特定用户的所有表

时间:2016-07-04 11:29:50

标签: postgresql

我必须列出特定用户的所有表格。

当我查询时:

select * from pg_user;

我获得了数据库中的所有用户。我想查看其中一个特定用户可以看到哪些表。

2 个答案:

答案 0 :(得分:0)

pg_tables让它变得非常简单。

所有表格:

select * from pg_tables where schemaname !~ '^pg_|^information_schema'

或针对特定用户/角色:

select * from pg_tables where tableowner = 'specificuser'

答案 1 :(得分:-1)

表上的

用户权限:

select * from dba_tab_privs where GRANTEE ='username' 

select * 
from dba_tab_privs 
where GRANTEE ='put user name' 
and privilege = 'SELECT';

注意:您必须使用用户ID代替用户名。

对于PostgreSQL:

select has_table_privilege('postgres','table1','select');