点击上方蓝字关注我

9f5d5202186487aa2bd724293d66162d.png

近期有同学反馈在使用PG数据库的时候,明明之前创建的账号已经授权了查看所有表的权限,为何却查不到新建表?到底该如何授权?

1. 常见授权脚本

创建用户test_user

create user test_user with password 'password';

授权用户使用public schema的权限

grant usage on schema public to test_user;

授权用户查看schema public下的所有表(授权时此库的的所有表,后续新增表不能看到)

grant select on all tables in schema public to test_user;

   授权test_user用户查看新创建表的select 权限

alter default privileges in schema public grant select on tables to test_user;

授予指定schema 下所有数据表及序列的权限

grant all privileges on all tables in schema public to test_user;
grant all privileges on all sequences in schema public to test_user;

2.  查看用户权限

很多时候也需要查看用户有哪些权限,因此常见的权限查看脚本如下

查看某用户的系统权限

SELECT * FROM  pg_roles WHERE rolname='test_user';

查看某用户的表权限

select * from information_schema.table_privileges where grantee='test_user';

查看某用户的usage权限

select * from information_schema.usage_privileges where grantee='test_user';

查看某用户在存储过程函数的执行权限

select * from information_schema.routine_privileges where grantee='test_user';

查看某用户在某表的列上的权限

select * from information_schema.column_privileges where grantee='test_user';

查看当前用户能够访问的数据类型

select * from information_schema.data_type_privileges ;

查看用户自定义类型上授予的USAGE权限

select * from information_schema.udt_privileges where grantee='test_user';

27ecce2af0b62eec1bd2d97d40a580eb.png

往期精彩回顾

1.  MySQL高可用之MHA集群部署

2.  mysql8.0新增用户及加密规则修改的那些事

3.  比hive快10倍的大数据查询利器-- presto

4.  监控利器出鞘:Prometheus+Grafana监控MySQL、Redis数据库

5.  PostgreSQL主从复制--物理复制

6.  MySQL传统点位复制在线转为GTID模式复制

7.  MySQL敏感数据加密及解密

8.  MySQL数据备份及还原(一)

9.  MySQL数据备份及还原(二)

c4c65f956f6f67663811e99c9872d125.png

扫码关注     

8e262641942afe7e36ce9f173a43deba.jpeg

b11c8865588883d167c233140cf3b45f.png

9c7f5d2765e1066fe978c238044236d4.png

更多推荐