如何在PostgreSQL中建只读账号
转:
如何在PostgreSQL中建只读账号
Posted on 2014-01-21 22:00:15 by osdba
在PostgreSQL中并没有CREATE TABLE权限名称,这是与其它数据库不同的一个地方,PostgreSQL是通过控制是否在模式schema中上有CREATE控制用户的能否创建表的权限的,默认安装下,任何用户都有在模式public中CREATE的权限,所以要创建只读账号的第一步,我们要先去除在模式public中的CREATE权限:
REVOKE  CREATE  ON SCHEMA public from public;
下面的SQL创建了一个名为“readonly”的用户:
CREATE USER readonly with password 'query';
然后把现有的所有在public这个schema下的表的SELECT权限赋给用户readonly,执行下面的SQL命令:
GRANT SELECT ON  ALL TABLES IN SCHEMA public TO readonly;
上面的SQL命令只把现有的表的权限给了用户readonly,但如果这之后创建的表,readonly用户还是不能读,需要使用下面的SQL把以后创建的表的SELECT权限也给用户readonly:
ALTER DEFAULT PRIVILEGES IN SCHEMA public grant select on tables to readonly;
注意:上面的过程只是把名称为public的schema下的表赋了只读权限,如果想让这个用户能访问其它schema下的表,需要重复执行:
GRANT SELECT ON  ALL TABLES IN SCHEMA other_schema TO readonly;
ALTER DEFAULT PRIVILEGES IN SCHEMA other_schema grant select on tables to readonly;如何在PostgreSQL中建只读账号的更多相关文章
- postgresql 设置只读用户
		postgresql 设置只读用户 ` CREATE USER readonly WITH ENCRYPTED PASSWORD 'ropass'; alter user readonly set d ... 
- Linux只读账号配置【转】
		整个配置的命令如下(主要使用了:Linux bash受限的shell(RESTRICTED SHELL)) 步骤#1.创建只读shell(这步可以省略) ln -s /bin/bash /bin/rb ... 
- MySql 创建只读账号
		GRANT Select ON *.* TO reader@192.168.1.123 IDENTIFIED BY "123456" GRANT 可以立刻生效 在mysql 5 ... 
- PostgreSQL创建只读账户
		目前PostgreSQL并不能像MySQL一样直接对某个数据库赋予只读权限,现实中有研发需要新建一个用户然后赋予对某个数据库只读权限. 举例说明如何创建 用edbstore用户连接edbstore数据 ... 
- 创建只读账号oracle
		1.创建用户,指定哪个表空间create user test2 identified by "123" default tablespace BDCDJ_XC temporary ... 
- PostgreSQL创建只读用户
		创建用户及指定密码: CREATE USER readonly WITH ENCRYPTED PASSWORD 'ropass'; 设置用户默认事务只读: alter user readonly se ... 
- ORACLE权限管理—创建只读账号
		创建只读用户:grant connect to user; grant create session to user; 1.创建角色 CREATE ROLE SELECT_ROLE 2.给角色分配权限 ... 
- PostgreSQL创建只读权限的用户
		1.创建只读角色 CREATE ROLE readaccess; 2.授予对现有表的访问权限 GRANT USAGE ON SCHEMA public TO readaccess; GRANT SEL ... 
- 如何在postgresql中模拟oracle的dual表,来测试数据库最基本的连接功能?
		还好,网上弄到的,,没有dual的数据库,可以试图用select函数不带from数据表的方式来实现返回值. 一段测试代码: try: conn = psycopg2.connect(database= ... 
随机推荐
- springmvc 自定义拦截器
			<mvc:interceptors> <!-- 配置自定义的拦截器 --> <bean class="com.atguigu.springmvc.interce ... 
- Poj 1755Triathlon 未Ac,先mark
			地址:http://poj.org/problem?id=1755 题目: Triathlon Time Limit: 1000MS Memory Limit: 10000K Total Subm ... 
- 关于myeclipse+tomcat+struct2的热部署问题
			今天满心欢喜的打开电脑来写程序,却不曾想到它竟然给我搞事情,前几天刚学的struct2热部署竟然不好用了.每次改java文件都要重新部署好麻烦,最后花了了好长时间才解决,必须在这里总结一下: (1)s ... 
- Web开发相关笔记
			1.MySQL命令行下执行.sql脚本详解http://database.51cto.com/art/201107/277687.htm 在可视化工具里导出.sql脚本 --> 放命令行里运行 ... 
- Sybase:循环调用存储过程
			Sybase:循环调用存储过程 一.日期循环 declare @c_count int declare @rq int --获取两个日期之间的天数 ,getdate()) begin ,),),),) ... 
- session/token/cookie/socket区别
			Session:在计算机中,尤其是在网络应用中,称为“会话控制”.Session 对象存储特定用户会话所需的属性及配置信息.这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象 ... 
- DataStage系列教程 (Pivot_Enterprise 行列转换)
			有人提到Pivot_Enterprise这个组件,之前没有用过,今天捣腾了会,写下来供以后参考,如果有什么不对的,还请多指出,谢谢! Pivot_Enterprise主要用来进行行列转换. 1 示例 ... 
- springBean获取的几种方法
			1.通过FileSystemApplicationContext来获取(不常用,因为要spring配置文件的绝对路径) 2.通过ClassPathXmlApplicationContext来获取(常用 ... 
- Java 获取路径的几种方法 - 转载
			1.获取当前类所在的“项目名路径” String rootPath = System.getProperty("user.dir"); 2.获取编译文件“jar包路径”(反射) S ... 
- xp_sp3_pro_简中_x86_cd_vl_x14-74070
			1.镜像文件: zh-hans_windows_xp_professional_with_service_pack_3_x86_cd_vl_x14-74070.iso 来自 msdn itellyou ... 
