Skip to content

1.PG_PERMISSIONS

1.1 介绍

PG_PERMISSIONS插件是一个帮助我们查看数据库里的用户拥有什么权限的工具,

包括:数据库权限,模式权限,表权限,视图权限,列权限,函数权限以及序列权限。

但是Superuser不会显示在视图中,因为他们自动拥有所有权限。

1.2 部署

  • 进入到contrib/pg_permissions-master
cd contrib/pg_permissions-master
cd contrib/pg_permissions-master
  • 查看pg_config
bash
[root@db_prod data]# which pg_config
/data/apps/pgsql/16/bin/pg_config

[root@db_prod data]# pg_config --sharedir
/data/apps/pgsql/16/share
[root@db_prod data]# which pg_config
/data/apps/pgsql/16/bin/pg_config

[root@db_prod data]# pg_config --sharedir
/data/apps/pgsql/16/share
  • 安装
bash
make install USE_PGXS=1 pg_config=/data/apps/pgsql/16/bin/pg_config
make install USE_PGXS=1 pg_config=/data/apps/pgsql/16/bin/pg_config

1.3 创建

sql
 create extension pg_permissions;
 create extension pg_permissions;
  • 查看
sql
\dx
\dx

1.4 使用

安装之后,就会产生多个视图,视图包含相应的一些对象的权限信息,其中all_permissions里包含几个其他视图的所有的权限。

\du

\dv *permissions;

select * from all_permissions where role_name='chpt' and object_name not like '%permission%';

select * from view_permissions
\du

\dv *permissions;

select * from all_permissions where role_name='chpt' and object_name not like '%permission%';

select * from view_permissions

文档:

https://github.com/cybertec-postgresql/pg_permissions

https://www.cybertec-postgresql.com/en/blog/

https://pigsty.io/docs/