使用超级用户pgadmin创建应用用户appuser  赋权createdb、login   密码为 1qaz@WSX  有效时间至2022年12月31日
[postgres@localhost ~]$ psql -U pgadmin -d postgres psql (12.0) Type "help"
for help. postgres=# create user appuser with createdb login password
'1qaz@WSX' valid until '2022-12-31'; CREATE ROLE
创建属主为appuser的表空间并命名为exam,指向/exam

        创建表空间目录
[postgres@localhost ~]$ su - root [root@localhost ~]# cd / [root@localhost /]#
mkdir /exam [root@localhost /]# chown postgres.postgres /exam
        创建表空间和数据库
[root@localhost /]# su - postgres [postgres@localhost ~]$ psql -d postgres -U
pgadmin postgres=# create tablespace exam owner appuser location '/exam';
postgres=# create database appdb with owner=appuser tablespace=exam;
回收 appdb 中在 public 上面的 create object权限
postgres=# \c appdb pgadmin appdb=# revoke create on schema public from public;
        注意:from XXX 表示回收哪个个角色的权限

以appuser用户 在appdb数据库中 创建名为appuser的schema
appdb=# \c appdb appuser appdb=> create schema appuser;
以appuser用户 在appdb数据库中创建表app表 schema为appuser
appdb=# \c appdb appuser appdb=> create table appuser.app(id int);
回收其他非超级用户对于appdb的连接权限
appdb=> \c appdb pgadmin appdb=# revoke connect on database appdb from public;
创建readonlyuser只读用户 并且该用户可以连接到appdb
appdb=# \c appdb pgadmin appdb=# create user readonlyuser with password
'1qaz@WSX'; appdb=# grant connect on database appdb to readonlyuser;
授权readonlyuser对appuser schema下所有的表有只读权限
appdb=> \c appdb pgadmin appdb=# grant usage on schema appuser to
readonlyuser; appdb=# grant select on all tables in schema appuser to
readonlyuser;
授权readonlyuser对appuser schema下新创建的表有只读权限(默认权限为只读)
appdb=> \c appdb appuser appdb=> alter default privileges grant usage on
schemas to readonlyuser; appdb=> alter default privileges in schema appuser
grant select on tables to readonlyuser;
        注意:这里要用appuser赋权 用pgadmin赋权新表不具有查询权限

 

 

技术
下载桌面版
GitHub
Gitee
SourceForge
百度网盘(提取码:draw)
云服务器优惠
华为云优惠券
腾讯云优惠券
阿里云优惠券
Vultr优惠券
站点信息
问题反馈
邮箱:[email protected]
吐槽一下
QQ群:766591547
关注微信