PostgreSQL数据库用户规划

在SQL标准里,同一个模式下的对象是不能被不同的用户拥有的,而且有些数据库系统不允许创建和它们的所有者不同名的模式,如Oracle数据库。
实际上,在那些只实现了标准中规定的基本模式的数据库系统里,模式和用户的概念几乎是一样的,比如Oracle数据库。因此,许多用户考虑对名字加以修饰,使它们真正由“username.tablename”组成。如果在PostgreSQL中为每个用户都创建一个与用户名同名的模式,那么就能与Oracle数据库兼容了。
同样,在SQL标准中也没有public模式的概念。为了最大限度地遵循标准,并且与其他数据库兼容(如Oracle数据库),建议不要使用(甚至是应该删除)public模式。

规划

数据库可以包含多个模式,本文规划每个库仅对应一个模式,用户权限仅包含对模式中对象的增删改查

在这里插入图片描述

创建用户

create user tencent identified by 'tencent';

创建数据库

create database tencent;

创建模式

公共模式的处理还需要调研,目前还没有资料显示必须要删除

\c tencent

drop schema public;

create schema tencent;

设置默认路径

$user表示用户名,在这里表示tencent

alter user tencent  set search_path="$user",public;

授予权限

先赋予模式的权限

grant usage on schema tencent to tencent;

只对历史的一些对象授权,后期增加的对象是没有权限的,需要授予默认权限

grant select,insert,update,delete on all tables in schema tencent to tencent; 
grant select,update on all sequences in schema tencent to tencent; 

授予默认权限,后期增加的对象也会获得权限

ALTER DEFAULT PRIVILEGES IN SCHEMA tencent GRANT select,insert,update,delete ON TABLES TO tencent; 
ALTER DEFAULT PRIVILEGES IN SCHEMA tencent GRANT select,update ON sequences TO tencent;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值