zoukankan      html  css  js  c++  java
  • postgresql 列级安全,列权限

    列级安全

    在某些情况下,并非所有的人都能看到表中所有的数据。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
    
  • 相关阅读:
    NoInstall_Mysql
    说话
    我是一名博客新人
    pom.xml报错
    模板——链表模板、有序链表模板及测试
    模板——函数模板
    模板——类模板
    MDI程序演示
    容器和算法2 C++快速入门48(完)
    MDI程序演示
  • 原文地址:https://www.cnblogs.com/zhangfx01/p/14367563.html
Copyright © 2011-2022 走看看