当前位置:网站首页>PG基础篇--逻辑结构管理(用户及权限管理)
PG基础篇--逻辑结构管理(用户及权限管理)
2022-07-05 18:57:00 【51CTO】
用户与角色
在postgreSQL中,角色和用户是没有区别的,一个用户也是一个角色,可以把一个用户的权限赋予给另一个用户。用户和角色在整个数据库实例中是全局的,在同一个实例中的不同数据库中,看到的用户都是相同的。
在初始化数据库系统时有一个预定义的超级用户,这个用户的名称和初始化该数据库的操作系统用户名相同。
在pg中,用户和角色是没有区别的,除了create user默认创建出来的用户有login权限,create role创建出来的用户没有login权限之外,create rule与create user没有其他的区别。
如何创建用户
CREATE USER name [ [ WITH ] option [ ... ] ]
where option can be :
SUPERUSER | NOSUPERUSER #是否是超级用户
| CREATEDB | NOCREATEDB #是否具有create database权限
| CREATEROLE | NOCREATEROLE #是否具有创建其他角色的权限
| INHERIT | NOINHERIT #创建的用户如果拥有角色,是否自动拥有角色权限
| LOGIN | NOLOGIN #是否有LOGIN权限
| REPLICATION | NOREPLICATION #复制权限
| BYPASSRLS | NOBYPASSRLS
| CONNECTION LIMIT connlimit
| [ ENCRYPTED ] PASSWORD 'password' | PASSWORD NULL
| VALID UNTIL 'timestamp' #密码失效时间
| IN ROLE role_name [ , ... ]
| IN GROUP role_name [ , ... ]
| ROLE role_name [ , ... ]
| ADMIN role_name [ , ... ] #with admin option权限
| USER role_name [ , ... ]
| SYSID uid
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
权限管理
在pg中,每个数据库的逻辑结构对象都有一个所有者,任何数据库对象都是属于某个用户的,所有不用把对象的权限再赋予所有者,因为所有者默认就拥有所有的权限。所有者也隐式的拥有把操作该对象的权限赋予其他用户的权利
权限分类
创建用户时指定的权限
超级用户权限
创建数据库权限
是否有login权限
也可以通过alter role来修改
需要grant或revoke的权限
在数据库中创建schema权限
允许在指定数据库中创建临时表的权限
连接某个数据库的权限
在模式中创建数据库对象的权限
select、DML操作权限
序列查询,函数使用,触发器权限
指定表,索引到表空间的权限
role_name 指用户或者角色
some_privileges 指权限
database_object_type指数据库对象,如table、schema、sequence
grant select on table mytab to public;
pg没有DDL权限,是否创建表,是看在schema中是否具有create的权限。
权限总结
权限是按层次进行管理的
1)首先管理赋在用户特殊属性上的权限,如超级用户的权限,创建数据库的权限,创建用户的权限,LOGIN权限等。
2)然后是在数据库中创建模式的权限。
3)接着是在模式中创建数据库的对象的权限,创建表,索引等。
4)之后是查询表,向表中插入数据,更新表,删除表中的数据权限。
5)最后是操作表中的某些字段的权限
边栏推荐
- What are the cache interfaces of nailing open platform applet API?
- 开源 SPL 消灭数以万计的数据库中间表
- 使用文件和目录属性和属性
- Technology sharing | common interface protocol analysis
- Interviewer: what is the difference between redis expiration deletion strategy and memory obsolescence strategy?
- Talking about fake demand from takeout order
- Benefits of automated testing
- [today in history] July 5: the mother of Google was born; Two Turing Award pioneers born on the same day
- 2022年5月腾讯云开发者社区视频月度榜单公布
- 2022最新大厂Android面试真题解析,Android开发必会技术
猜你喜欢
AI open2022 | overview of recommendation systems based on heterogeneous information networks: concepts, methods, applications and resources
蚂蚁集团开源可信隐私计算框架「隐语」:开放、通用
Isprs2020/ cloud detection: transferring deep learning models for cloud detection between landsat-8 and proba-v
2022最新中高级Android面试题目,【原理+实战+视频+源码】
【历史上的今天】7 月 5 日:Google 之母出生;同一天诞生的两位图灵奖先驱
2022最新Android面试笔试,一个安卓程序员的面试心得
Why can't Bi software do correlation analysis? Take you to analyze
Mysql database indexing tutorial (super detailed)
Interprocess communication (IPC): shared memory
国内低代码开发平台靠谱的都有哪些?
随机推荐
从外卖点单浅谈伪需求
Debezium系列之:记录mariadb数据库删除多张临时表debezium解析到的消息以及解决方法
ROS安装报错 sudo: rosdep:找不到命令
c语言简便实现链表增删改查「建议收藏」
R language uses lubridate package to process date and time data
Is the performance evaluation of suppliers in the fastener industry cumbersome? Choose the right tool to easily counter attack!
JS解力扣每日一题(十二)——556. 下一个更大元素 III(2022-7-3)
基于FPGA的超声波测距
企业级数据安全,天翼云是这样理解的
出海十年:新旧接力,黑马崛起
Go语言 | 02 for循环及常用函数的使用
Oracle Chinese sorting Oracle Chinese field sorting
EMQX 5.0 正式发布:单集群支持 1 亿 MQTT 连接
开源 SPL 消灭数以万计的数据库中间表
泰山OFFICE技术讲座:由行的布局高度,谈绘制高度的高度溢出、高度缩水(全网首发)
国内低代码开发平台靠谱的都有哪些?
数学分析_笔记_第9章:曲线积分与曲面积分
Go语言 | 01 WSL+VSCode环境搭建避坑指南
Isprs2022/ cloud detection: cloud detection with boundary nets
手把手教你处理 JS 逆向之图片伪装