Case: 一个read-only 角色对某个schema下的新建的表,无需单独授权,直接拥有只读权

Case: 一个read-only 角色对某个schema下的新建的表,无需单独授权,直接拥有只读权限

首先,你要知道PostgreSQL默认schema下新建的表,对于一个普通用户不会有select的权限的,所以我需要修改PostgreSQl默认的权限,把select提前赋予普通用户,需要使用到alter default privileges这个命令

Session1 (user:postgres):

#psql

create role role1 password '123456' login;

create schema schema1;

grant usage on schema schema1 to role1;

testdb=# \dn+ schema1;

List of schemas

Name   |  Owner   |  Access privileges   | Description

---------+----------+----------------------+-------------

schema1 | postgres | postgres=UC/postgres+|

|          | role1=U/postgres     |

alter default privileges in schema schema1 grant select on tables to role1;

testdb=# \ddp+

Default access privileges

Owner   | Schema  | Type  | Access privileges

----------+---------+-------+-------------------

postgres | schema1 | table | role1=r/postgres

create table schema1.t1(c1 int,c2 varchar(10));

insert into schema1.t1 values(1,'aaa');

testdb=# \dp+

Access privileges

Schema  | Name | Type  |     Access privileges     | Column privileges | Policies

---------+------+-------+---------------------------+-------------------+----------

schema1 | t1   | table | postgres=arwdDxt/postgres+|                   |

|      |       | role1=r/postgres          |                   |

Session2 read_only:

#psql -h 172.16.101.54 -p 5432 testdb role1

testdb=> select * from schema1.t1;

c1 | c2

----+-----

1 | aaa

(1 row)

原文地址:http://blog.51cto.com/darrenmemos/2086198

时间: 2024-11-07 01:22:54

Case: 一个read-only 角色对某个schema下的新建的表,无需单独授权,直接拥有只读权的相关文章

BOS项目 第11天(activiti工作流第三天,流程实例管理、项目中的用户和角色同步到activiti的用户和组表、设计物流配送流程、启动物流配送流程、组任务操作(查询、拾取)、个人任务操作(查询、办理))

BOS项目笔记 第11天 今天内容安排: 1.流程实例管理(查询.查看运行状态) 2.将bos系统中的用户和角色同步到activiti的用户和组表 3.设计物流配送流程 4.启动物流配送流程 5.组任务操作(查询.拾取) 6.个人任务操作(查询.办理) 1. 流程实例管理 1.1 查询流程实例列表 第一步:创建一个流程实例管理Action,提供list方法,查询流程实例列表数据 第二步:配置struts.xml 第三步:提供processinstance.jsp页面,展示列表数据 <s:iter

给一个运行在windows 7和NAT下的VMWARE虚拟机分配固定IP

虚拟机上装了个oracle服务器,每次vmware重启或者resume时总要分配新的IP地址,这样就得修改windows下的客户端配置,所以需要想办法把IP地址固定住. DHCP服务在客户端请求IP时可以根据mac地址给予"固定"的IP.  第一步:修改DHCP服务器配置文件: 在C:\ProgramData\VMware下的vmnetdhcp.conf,在最后加上如下行: host THEL6_64 { hardware ethernet 00:0C:29:08:C5:7F; fix

这是关于FastJson的一个使用Demo,在Java环境下验证的

1 public class User { 2 private int id; 3 private String name; 4 public int getId() { 5 return id; 6 } 7 public void setId(int id) { 8 this.id = id; 9 } 10 public String getName() { 11 return name; 12 } 13 public void setName(String name) { 14 this.n

一个球从100m高度自由落下,第10次反弹多高

.一个球从100m高度自由落下,每次落地后反跳回原来高度的一半,再落下,再反弹.求它在第10次落地时,共经过多少米?第10次反弹多高   float h = 100;//初始高度//   //反弹高度//    float sum = 0;//走过的路程    //这是不知道谈几次的循环,所以应该考虑是不是需要用while循环    for (int i = 1; i < 11; i++) {           sum +=h +  h / 2;           h = h / 2 ;  

使用rsync+inotify的方式监控一个目录,当被监控目录下的子目录被移走后无法同步的问题

最近在测试rsync+inotify的方式同步PHP代码到一个集群下的WEB服务器.如被监控的目录是/var/www/html下有三个目录 dream_android  dream_ios  game_router 当我把dream_android这个目录更名为android后,发现其他服务器上没有出现android并且原有的dream_android并没有被删除.测试游戏时发现大量的404错误,最大的问题就是代码同步出现了问题. 检查同步脚本中inotify和rsync相关的信息 /usr/b

拷贝一个目录或者文件到指定路径下

/** * 拷贝一个目录或者文件到指定路径下 * * @param source * @param target */ public static void copy(File source, File target) { File tarpath = new File(target, source.getName()); if (source.isDirectory()) { tarpath.mkdir(); File[] dir = source.listFiles(); for (int

编写一个程序,将 d: \ java 目录下的所有.java 文件复制到d: \ jad 目录下,并 将原来文件的扩展名从.java 改为.jad

1.编写一个程序,将 d: \ java 目录下的所有.java 文件复制到d: \ jad 目录下,并 将原来文件的扩展名从.java 改为.jad package copy; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; i

取得指定Schema下的表

MYSQL中取得指定Schema下所有表定义的SQL语句如下(假设Schema名为demoschema): SHOWTABLES FROM demoschema MSSQLServer中的系统表sysobjects中记录了当前系统中定义的对象,其中xtype字段等于U的记录为表定义,因此取得当前数据库中所有表定义的SQL语句如下(假设Schema名为demoschema): SELECT name FROM demoschema.sysobjects where xtype="U" O

【Oracle】导出全库备份,导入指定的schema并替换现有的表

需求:开发环境,每天晚上做了全库导出备份.由于误操作,现在要恢复指定的schema下的所有表,操作思路如下: 1.全库导出备份的语句 expdp system/oracle full=y dumpfile=arp103.$version.dmp logfile=arp103.$version.log directory=dmppath compression=ALL compression=ALL 是压缩备份的意思,节省空间. 2.导入备份语句: impdp system/oracle dump