ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

【PostgreSQL】PostgreSQL脚本

2022-06-27 10:00:31  阅读:172  来源: 互联网

标签:脚本 PostgreSQL name pg routine privilege table schema


#查看用户权限1

select grantor,grantee,table_catalog,table_schema,table_name,privilege_type,is_grantable,with_hierarchy 
from information_schema.table_privileges
WHERE grantee = 'abce';

  

#查看用户权限2

SELECT grantee
      ,table_catalog
      ,table_schema
      ,table_name
      ,string_agg(privilege_type, ', ' ORDER BY privilege_type) AS privileges
FROM information_schema.role_table_grants
WHERE grantee != 'postgres'
GROUP BY grantee, table_catalog, table_schema, table_name;

  

#查看用户有哪些数据库的访问权限

select pgu.usename as user_name,
       (select string_agg(pgd.datname, ',' order by pgd.datname) 
        from pg_database pgd 
        where has_database_privilege(pgu.usename, pgd.datname, 'CONNECT')) as database_name
from pg_user pgu
order by pgu.usename;

这里的connect,可以替换成

SELECT,
INSERT,
UPDATE,
DELETE,
TRUNCATE,
REFERENCES,
TRIGGER,
CREATE,
TEMPORARY or TEMP,
EXECUTE,
USAGE

  

#查看用户对函数的使用权限

SELECT
    routine_catalog AS fct_db,
    routine_schema  AS fct_schema,
    routine_name    AS fct_name,
    privilege_type  AS fct_priv,
    array_agg (grantee::text ORDER BY grantee::text) AS fct_roles
FROM
    information_schema.routine_privileges
WHERE
    routine_schema NOT IN ('information_schema','pg_catalog')
GROUP BY
    routine_catalog, routine_schema, routine_name, privilege_type
ORDER BY
    routine_catalog, routine_schema, routine_name, privilege_type;

  

#查看autovacuum进程的活动

SELECT
	p.pid,
	p.datname,
	p.QUERY,
	p.backend_type,
	a.phase,
	a.heap_blks_scanned / a.heap_blks_total :: FLOAT * 100 AS "% scanned",
	a.heap_blks_vacuumed / a.heap_blks_total :: FLOAT * 100 AS "% vacuumed",
	pg_size_pretty ( pg_table_size ( a.relid ) ) AS "table size",
	pg_size_pretty ( pg_indexes_size ( a.relid ) ) AS "indexes size",
	pg_get_userbyid ( c.relowner ) AS OWNER 
FROM
	pg_stat_activity p
	JOIN pg_stat_progress_vacuum a ON a.pid = p.pid
	JOIN pg_class c ON c.oid = a.relid 
WHERE
	p.QUERY LIKE 'autovacuum%';

  

标签:脚本,PostgreSQL,name,pg,routine,privilege,table,schema
来源: https://www.cnblogs.com/abclife/p/16409010.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有