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