0. 背景
客户想要几张表的汇总数据,要直接访问数据库获取
数据库服务器为 PostgreSQL 11.4
1.分析
原则: 不能直接开放表的任何权限给用户,用户只能查询数据
思路是:
1.根据功能创建新视图
2.创建新用户
3.只授权新用户新视图的查询权限
2.实现
2.1根据功能创建新视图
create view view_students as
select
s.name
from
student s;
2.2创建新用户
CREATE USER user_stu WITH PASSWORD '12345';
2.3只授权新用户新视图的查询权限
grant select on TABLE public.view_students to user_stu ;
至此授权新用户新视图的查询权限完毕,但还不能访问
正规点的数据库服务器会限制用户和IP的访问
2.4 数据库服务器添加配置
在PG数据库服务器的data目录下,找到 pg_hba.conf
文件,打开后,添加指定用户在指定数据下通过指定IP访问的方式即可
修改保存完,一定要重启PG服务
3.总结
1.创建新视图
2.创建新用户
3.授权新用户新视图的查询权限
4.数据库配置访问许可