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用户都有只读权限。

原文地址:https://www.cnblogs.com/kuang17/p/10594991.html

时间: 2024-08-12 15:33:32

PostgreSQL数据库创建只读用户总结的相关文章

修改PostgreSQL数据库的默认用户postgres的密码

有时候,忘记了postgresql 安装时默认用户postgres 的密码,怎么办呢? linux shell命令下面输入: sudo -u postgres psql  (这样就可以直接登录进postgres 了, 然后在里面可以进行添加用户,修改密码之类的,都不是问题了!!) -------------------------------------------------------------------------------------------------------------

SQLSERVER创建只读用户

SQLSERVER创建只读用户: 1.进入Sqlserver Management Studio(MSSQL客户端) 2.选择安全性->登录名->右键新建登录名 3.在常规里输入用户名和密码 4.在"用户映射"里"映射到此登录名的用户"选择该用户可以操作的数据库 5.在"数据库角色成员身份"里选择"db_datareader", 6.这样一个只读用户就创建完成了. 服务器角色参考(可以对数据库进行表结构修改操作)

PostgreSQL简单添加只读用户的方法

1. 添加了白名单只读来避免开发同事错误的修改数据库内的数据, 但是他们总想去查询数据库的内容. 最简单的办法是修改pg_hba.conf添加只读用户. 2. 添加只读用户. 使用psql登录pg数据库 psql -U gscloud -d gscloud 效果为: [[email protected] zhaobsh]# psql -U gscloud -d gscloud Password for user gscloud: psql (10.7) Type "help" for

PostgreSQL创建只读用户

创建用户及指定密码: CREATE USER readonly WITH ENCRYPTED PASSWORD 'ropass'; 设置用户默认事务只读: alter user readonly set default_transaction_read_only=on; 赋予用户权限,查看public模式下所有表: GRANT USAGE ON SCHEMA public to readonly; ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT S

PostgreSQL数据库创建/删除

方法1 - 系统命令 sudo su - postgres #切换到postgres用户(系统用户) createdb weichen #创建数据库 psql #直接访问数据库(默认进入本地postgres数据库) \l --查看数据库列表 :q --退出列表页面 \q --退出客户端 dropdb weichen #删除数据库 方法2 - psql命令行 sudo -u postgres psql #登录客户端 create database weichen; --创建数据库 create d

创建只读用户

第一步.创建用户.使用有管理员权限的用户创建一个新的用户: create user 用户名 identified by 密码 default tablespace 表空间; 第二步.赋连接权限: grant connect to 用户名; 第三步.赋表权限 owner 主用户 grant select on owner.表名 to 用户名; 如果有多表,可以用selece转换批量执行语句: select 'grant select on '||owner||'.'||object_name||'

sql server创建只读用户访问指定表

exec sp_addlogin '用户名','密码','数据库' go use 数据库 exec sp_grantdbaccess '用户名' go use 数据库 grant select on 表名 to "用户名" exec sp_addlogin '用户名','密码','数据库'go use 数据库exec sp_grantdbaccess '用户名'gouse 数据库grant select on 表名to "用户名" 原文地址:https://www.

postgresql数据库安装及简单操作

自从MySQL被Oracle收购以后,PostgreSQL逐渐成为开源关系型数据库的首选. 本文介绍PostgreSQL的安装和基本用法,供初次使用者上手.以下内容基于Debian操作系统,其他操作系统实在没有精力兼顾,但是大部分内容应该普遍适用. 一.安装 首先,安装PostgreSQL客户端. sudo apt-get install postgresql-client 然后,安装PostgreSQL服务器. sudo apt-get install postgresql 正常情况下,安装完

SQL Server 2008数据库创建用户只读权限的两种方式

在SQL Server 2008中,为了保护数据库的安全,需要给不同的使用者开通不同的访问用户,那么如何简单的控制用户的权限呢?下面我们就创建一个只读用户,给大家学习使用. 一.命令行方式创建 新建查询窗口,然后输入以下命令然后执行即可 sqlserver命令方式增加登录名.用户名及赋予相应权限 sp_addlogin 'test','test','DB'  >>登录名.密码.登录的数据库 sp_grantdbaccess 'test'  >>将数据库用户加入到当前数据库 gran