PostgreSQL获取用户下所有对象

Posted PostgreSQLChina

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PostgreSQL获取用户下所有对象相关的知识,希望对你有一定的参考价值。

作者:吴聪

有时我们需要对数据库用户下的对象进行审计时,可以使用下面脚本直接获取用户下所有对象。

查看postgres用户下所有对象:

select 
    nsp.nspname as SchemaName
    ,cls.relname as ObjectName 
    ,rol.rolname as ObjectOwner
    ,case cls.relkind
        when 'r' then 'TABLE'
        when 'm' then 'MATERIALIZED_VIEW'
        when 'i' then 'INDEX'
        when 'S' then 'SEQUENCE'
        when 'v' then 'VIEW'
        when 'c' then 'TYPE'
        else cls.relkind::text
    end as ObjectType
from pg_class cls
join pg_roles rol 
    on rol.oid = cls.relowner
join pg_namespace nsp 
    on nsp.oid = cls.relnamespace
where nsp.nspname not in ('information_schema', 'pg_catalog')
    and nsp.nspname not like 'pg_toast%'
    and rol.rolname = 'postgres'  
order by nsp.nspname, cls.relname;

示例:

以上是关于PostgreSQL获取用户下所有对象的主要内容,如果未能解决你的问题,请参考以下文章

PostgreSQL获取用户下所有对象的权限情况

使用特定对象而不是对象属性获取核心数据

Postgresql:更改所有者对象时出现错误“必须是关系的所有者”

PostgreSQL:将所有权限授予 PostgreSQL 数据库上的用户

spring练习,在Eclipse搭建的Spring开发环境中,使用set注入方式,实现对象的依赖关系,通过ClassPathXmlApplicationContext实体类获取Bean对象(代码片段

VSCode自定义代码片段12——JavaScript的Promise对象