PostgreSQL数据库创建只读用户总结
好久没有弄,有点忘了,今天有客户问这个问题,发现几个SQL还解决不了,于是总结一下:
--以超级用户登录数据库,创建用户: postgres=# create user test_read_only password 'test_read_only'; CREATE ROLE --设置为只读的transaction: postgres=# alter user test_read_only set default_transaction_read_only=on; ALTER ROLE --默认在postgres数据库的public模式下的对象是可以访问的: --如果要访问别的schema的表,则需要两步: --首先要有使用schema的权限: postgres=# grant usage on schema test to test_read_only; --然后加所有表的只读权限: postgres=# grant select on all tables in schema public to test_read_only; GRANT --如果不想给所有表的查询权限,则单独给某个表的查询权限: postgres=# grant select on table test to test_read_only; GRANT --如果要在别的数据库访问,则先要用postgres(超级用户登录),然后\c到对应的数据库,执行下面的命令,将对应的schema的表查询权限给这个用户: postgres=# \c test You are now connected to database "test" as user "postgres". --test数据库的public模式的usage权限是默认就有的,只需要添加表的只读权限即可: test=# grant select on all tables in schema public to test_read_only; GRANT --如果是将某个模式下的所有表的只读权限都给了某个用户,当新建表的时候,该用户仍然没有任何权限,这时,需要手动添加,或者修改模式的属性: test=# alter default privileges in schema public grant select on tables to test_read_only; ALTER DEFAULT PRIVILEGES --这样即使是该模式中新加的表,test_read_only用户都有只读权限。
PostgreSQL数据库创建只读用户总结的更多相关文章
- Oracle数据库创建只读用户
创建一个只读用户user2,只能查询管理员用户user1下的表,不能增删改. 操作环境:PL/SQL Developer 1.用管理员用户user1登录,创建用户user2.并授权 --创建用户use ...
- Azure SQL Database (25) Azure SQL Database创建只读用户
<Windows Azure Platform 系列文章目录> 本文将介绍如何在Azure SQL Database创建只读用户. 请先按照笔者之前的文章:Azure SQL Databa ...
- 修改PostgreSQL数据库的默认用户postgres的密码
有时候,忘记了postgresql 安装时默认用户postgres 的密码,怎么办呢? linux shell命令下面输入: sudo -u postgres psql (这样就可以直接登录进pos ...
- postgresql数据库创建、修改、删除
一.数据库创建 语法: Command: CREATE DATABASEDescription: create a new databaseSyntax:CREATE DATABASE nam ...
- 修改PostgreSQL数据库的默认用户postgres的密码 并新建用户
1.忘记了postgresql 安装时默认用户postgres 的密码,怎么办呢? linux shell命令下面输入: sudo -u postgres psql (这样就可以直接登录进postg ...
- mysql数据库,创建只读用户
数据库当前只有一个root用户,需要创建一个只读帐户给其他使用,因使用者是使用数据库管理工具在其他主机访问,所以还要开户远程访问权限,操作步骤如下. 1. 使用现有的root用户登录到Mysql. m ...
- PostgreSQL创建只读用户
创建用户及指定密码: CREATE USER readonly WITH ENCRYPTED PASSWORD 'ropass'; 设置用户默认事务只读: alter user readonly se ...
- PostgreSQL数据库创建/删除
方法1 - 系统命令 sudo su - postgres #切换到postgres用户(系统用户) createdb weichen #创建数据库 psql #直接訪问数据库(默认进入本地postg ...
- 数据库创建,用户管理,导入dmp文件
创建数据库文件 CREATE TABLESPACE toolset LOGGING DATAFILE '/home/oracle/app/oracle/oradata/orcl/toolset.dbf ...
随机推荐
- 马尔科夫随机场模型(MRF-Markov Random Field)
原文: http://blog.sina.com.cn/s/blog_92c398b00102vs3q.html 马尔科夫过程 隐马尔科夫过程 与马尔科夫相比,隐马尔可夫模型则是双重随机过程,不 ...
- 关于iBatis配置xml文件时出现中文注释出错的一个问题(很坑爹.)
才开始我没有使用SqlMap.properties来配置连接信息.所以直接用ctrl + shift + C然后往里面添加的中文注释 例: <!-- 注释--> 运行的时候报: Error ...
- c++ 容器元素填充(fill)
#include <iostream> // cout #include <algorithm> // fill #include <vector> // vect ...
- SQL Insert Case When Update
CREATE TABLE LoadTestTable ( ID INT IDENTITY(1,1), FIRSTNAME VARCHAR(50), LASTNAME VARCHAR(50), GEND ...
- Java实现邮箱激活验证2
SendEmail.java [java] view plaincopyprint? package com.app.tools; import java.util.Date; import ja ...
- Redis分布式锁实现简单秒杀功能
这版秒杀只是解决瞬间访问过高服务器压力过大,请求速度变慢,大大消耗服务器性能的问题. 主要就是在高并发秒杀的场景下,很多人访问时并没有拿到锁,所以直接跳过了.这样就处理了多线程并发问题的同时也保证了服 ...
- mysql 将一张表里的数据插入到另一张表
1. 表结构一样 insert into 表1 select * from 表2 2. 表结构不一样 insert into 表1 (列名1,列名2,列名3) select 列1,列2,列3 from ...
- 错误代码0x00000001,好多软件连不了网,求助~(WIN7/win8/win9/win10)
解决办法: 以管理员身份运行命令行,在弹出的窗口中运行如下命令: netsh winsock reset catalog netsh int ip reset reset.log hit 让被阻止了的 ...
- Oracle11g温习-第七章:redo日志
2013年4月27日 星期六 10:33 1.redo (重做) log 的功能: 用于数据恢复 2.redo log 特征: [特征]: 1) 记录数据块的变化(DML.D ...
- git在eclipse中的配置 转载
git在eclipse中的配置 转载 一_安装EGIT插件 http://download.eclipse.org/egit/updates/ 或者使用Eclipse Marketplace,搜索EG ...