首页 > 数据库技术 > 详细

postgresql 列级安全,列权限

时间:2021-02-03 18:05:43      阅读:101      评论:0      收藏:0      [点我收藏+]

列级安全

在某些情况下,并非所有的人都能看到表中所有的数据。postgres中可以指定某些用户只能看到某些列

1.--表,插入一条数据
postgres=# create table t_user(n_id int,c_name text);
CREATE TABLE
postgres=# insert into t_user values(1,‘张三‘);
INSERT 0 1

2.--创建用户zhangsan
postgres=# create role zhangsan login;
CREATE ROLE

3.--赋予账号连接和使用权限
postgres=# grant connect on database postgres to zhangsan;
GRANT
postgres=# grant usage on schema public to zhangsan;
GRANT

4.赋予select权限给zhangsan,只能访问n_id
postgres=# grant select (n_id) on t_user to zhangsan;
GRANT

5.--查询数据,可以读取到数据
postgres=# \c postgres zhangsan
You are now connected to database "postgres" as user "zhangsan".
postgres=> select n_id from t_user;
 n_id 
------
    1
(1 row)

--如果使用select *会报错,因为*标识所有的列,只能访问有权限访问的列
postgres=> select * from t_user;
错误:  permission denied for table t_user
postgres=> select c_name from t_user;
错误:  permission denied for table t_user

postgresql 列级安全,列权限

原文:https://www.cnblogs.com/zhangfx01/p/14367563.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!