(六)PostgreSQL的组织结构(3)-默认角色和schema
PostgreSQL的组织结构(3)-默认角色和schema
基础信息
OS版本:Red Hat Enterprise Linux Server release 7.9 (Maipo)
DB版本:16.2
pg软件目录:/home/pg16/soft
pg数据目录:/home/pg16/data
端口:5777
1 默认角色
PostgreSQL 自带一些内置的角色,这些角色拥有特定的系统权限,用于执行管理任务、权限控制等。下面是一些主要的 PostgreSQL 自带角色及其用途介绍:
postgres
:- 这是安装 PostgreSQL 时默认创建的超级用户角色。它拥有数据库中的所有权限,包括创建和删除数据库、管理用户角色、分配权限等。
- 通常使用
postgres
用户进行数据库的初步设置和管理操作。
pg_signal_backend
:- 这个角色允许发送信号到同一数据库中的其他会话。例如,可以使用它来取消查询或终止会话。
- 这个角色主要用于数据库维护和控制操作。
pg_read_all_data
:- 这个角色主要是在 PostgreSQL 15 版本中引入的,作为一种新的权限管理机制,允许用户读取数据库中所有表和视图的数据,而无需对每个表单独授予权限。
pg_write_all_data
:- 这个角色主要是在 PostgreSQL 15 版本中引入的,作为一种新的权限管理机制,允许写入所有表和视图(但不包括DDL操作如创建或删除表)的角色,而无需对每个表单独授予权限。
pg_monitor
:- 查看系统目录中隐藏信息的能力,例如,统计信息或系统表中的某些列。
- 执行诊断查询,例如,查看执行计划或检查服务器的运行状态。
- 访问数据库的各种统计视图,这对于分析和优化查询、监控系统性能等任务至关重要。
pg_read_all_settings
:- 访问所有的 PostgreSQL 配置设置,这包括通过
SHOW
命令、pg_settings
系统视图,或者其他方法访问的设置。 - 读取包括一些敏感设置在内的配置,而无需被授予超级用户权限。
- 访问所有的 PostgreSQL 配置设置,这包括通过
pg_read_all_stats
:- 访问
pg_stat
系列视图,这些视图提供了关于数据库操作的详细统计信息,比如每个表的读写频率、索引的使用状况、被执行查询的性能统计等。 - 访问
pg_statio
系列视图,这些视图提供了关于数据库 I/O 操作的统计数据,比如对表、索引、Toast 表等的磁盘 I/O 统计信息。 - 能够查看执行计划统计信息,这对于分析查询性能和进行优化是很有帮助的。
- 访问
pg_read_server_files
:- 允许读取服务器上的文件。这对于执行某些数据库操作特别有用,比如使用
COPY FROM
命令或pg_read_file
函数来读取服务器上的文件内容到 PostgreSQL 数据库中。 - 使用这个角色可以帮助数据库管理员细粒度地控制对服务器文件的访问,从而避免将过高的权限(如超级用户权限)授予不需要这么高权限的用户。
- 允许读取服务器上的文件。这对于执行某些数据库操作特别有用,比如使用
pg_write_server_files
:- 允许持有该角色的用户写入服务器上的文件。这个角色为数据库操作提供了在服务器文件系统上执行写操作的能力,比如使用
COPY TO
命令将查询结果写入服务器上的文件中,或者通过其他数据库函数创建或修改服务器上的文件内容。
- 允许持有该角色的用户写入服务器上的文件。这个角色为数据库操作提供了在服务器文件系统上执行写操作的能力,比如使用
pg_execute_server_program
:- 允许用户在服务器上执行外部程序,这可以用于从数据库触发操作系统级别的脚本或程序。
- 这个角色特别适用于那些需要从 PostgreSQL 数据库内部,通过 SQL 命令执行服务器上的外部程序或脚本的情况。
pg_use_reserved_connections
:- 允许授予权限的用户使用保留的连接。
- 该角色特别适用于需要确保某些关键操作或关键用户在数据库高负载时仍能连接到数据库的场景。这可能包括自动化的维护脚本、关键任务执行或特定的监控服务等。
pg_create_subscription
:- 赋予用户创建复制订阅的能力。
- 该角色特别适用于需要设置和管理逻辑复制的用户或应用。
pg_checkpoint
:- 允许用户执行CHECKPOINT命令。
pg_stat_scan_tables
:- 允许用户执行监视功能。但这些功能可能会占用表上的ACCESS SHARE锁,且会持续很长一段时间。
pg_database_owner
:- 表示当前数据库所属。
- 表示当前数据库所属。
2 默认schema
PostgreSQL 默认安装时包含一些内建的 schema,最重要的是 public
schema。以下是一些 PostgreSQL 自带的、较为重要的 schema 及其用途:
-
public
:- 这是 PostgreSQL 数据库中默认的 schema。如果你创建表或其他数据库对象而没有明确指定 schema,这些对象将默认被创建在
public
schema 下。 - 所有用户默认都有权限在
public
schema 下创建、修改和删除对象。
- 这是 PostgreSQL 数据库中默认的 schema。如果你创建表或其他数据库对象而没有明确指定 schema,这些对象将默认被创建在
-
pg_catalog
:pg_catalog
是 PostgreSQL 存储数据库元数据的地方,比如信息模式(Information Schema)就在这里。它包含了所有内置的函数、数据类型以及系统表等。例如,当你在查询数据类型信息或者查看当前数据库中的所有表时,实际上这些信息都来自于pg_catalog
中的系统表。- 这个 schema 对 PostgreSQL 的运行来说是必需的,而且它对所有用户都是可见的。
-
information_schema
:information_schema
提供了关于数据库对象(如表、视图、列等)的信息的 SQL 标准视图。这些视图提供了一种标准化的方法来查询元数据,无论底层 RDBMS 是什么。- 虽然
information_schema
的数据是从pg_catalog
派生出来的,但information_schema
提供的信息是以一种更易理解和标准化的形式展现的。
-
pg_toast
:- TOAST(The Oversized-Attribute Storage Technique)是 PostgreSQL 处理大型数据行的机制。
pg_toast
schema 存储了特定 TOAST 数据的结构和信息。当一个表的某列数据超过了页面大小(默认是 8KB)时,PostgreSQL 会使用 TOAST 技术来存储这些大型字段。 - 通常情况下,普通用户不需要直接与
pg_toast
schema 交互。
- TOAST(The Oversized-Attribute Storage Technique)是 PostgreSQL 处理大型数据行的机制。
-
pg_temp
:pg_temp
是存放临时表的地方。这些临时表仅在当前会话中可见,并且在会话结束时被自动删除。在不同的会话中,即使使用相同的临时表名,实际上也是不同的表。- PostgreSQL 为每个会话动态创建一个临时 schema,来存放该会话的临时表。
PostgreSQL每个版本的角色和schema可能不一样,详情请查看对应版本的官方文档。
谨记:心存敬畏,行有所止。
相关文章:

(六)PostgreSQL的组织结构(3)-默认角色和schema
PostgreSQL的组织结构(3)-默认角色和schema 基础信息 OS版本:Red Hat Enterprise Linux Server release 7.9 (Maipo) DB版本:16.2 pg软件目录:/home/pg16/soft pg数据目录:/home/pg16/data 端口:57771 默认角色 Post…...
DockerFile定制镜像
dockerfile 简介 Dockerfile 是⼀个⽤来构建镜像的⽂本⽂件,⽂本内容包含了⼀条条构建镜像所需的指令和 说明,每条指令构建⼀层,最终构建出⼀个新的镜像。 docker镜像的本质是⼀个分层的⽂件系统 centos的iso镜像⽂件是包含bootfs和rootfs…...

Java8中JUC包同步工具类深度解析(Semaphore,CountDownLatch,CyclicBarrier,Phaser)
个人主页: 进朱者赤 阿里非典型程序员一枚 ,记录平平无奇程序员在大厂的打怪升级之路。 一起学习Java、大数据、数据结构算法(公众号同名) 引言 在Java中,并发编程一直是一个重要的领域,而JDK 8中的java.u…...
岛屿个数(dfs)
[第十四届蓝桥杯省B 岛屿个数] 小蓝得到了一副大小为 M N MN MN 的格子地图,可以将其视作一个只包含字符 0 0 0(代表海水)和 1 1 1(代表陆地)的二维数组,地图之外可以视作全部是海水,每个岛…...
【C++造神计划】运算符
1 赋值运算符 赋值运算符的功能是将一个值赋给一个变量 int a 5; // 将整数 5 赋给变量 a 运算符左边的部分叫作 lvalue(left value),右边的部分叫作 rvalue(right value) 左边 lvalue 必须是一个变量 右边 rval…...

Cortex-M3/M4处理器的bit-band(位带)技术
ARM Cortex-M3/M4的位带(Bit-Band)技术是一种内存映射技术,它允许对单个位进行直接操作,而不需要对整个字(通常是32位)进行操作。这项技术主要用于对特定的位进行高效的读写,特别是在需要对GPIO…...

【TOP】IEEE旗下1区,影响因子将破8,3个月录用,CCF推荐,性价比高!
计算机类 ● 好刊解读 IEEE出版社、中科院2区TOP,CCF推荐,今天推荐的期刊可谓buff叠满,好刊质量靠谱,有意向评职晋升毕业作者可重点关注: 01 期刊简介 ✅出版社:IEEE ✅影响因子:7.5-8.0 ✅…...
赚钱游戏 2.0.1 版 (资源免费)
没有c编辑器的可以直接获取资源来玩 #include <iostream> #include <string> #include <windows.h> #include <conio.h> #include <fstream> #include <ctime> #include <time.h> #include <stdio.h> #include <cstring&g…...

服务调用-微服务小白入门(4)
背景 各个服务应用,有很多restful api,不论是用哪种方式发布,部署,注册,发现,有很多场景需要各个微服务之间进行服务的调用,大多时候返回的json格式响应数据多,如果是前端直接调用倒…...
代码随想录算法训练营第三十六天| 435. 无重叠区间、 763.划分字母区间、56. 合并区间
435 题目: 给定一个区间的集合 intervals ,其中 intervals[i] [starti, endi] 。返回 需要移除区间的最小数量,使剩余区间互不重叠 。 题目链接:435. 无重叠区间 - 力扣(LeetCode) 思路: …...
【AIGC调研系列】rerank3是什么
Rerank 3是一个针对企业搜索和检索辅助生成(RAG)系统优化的新型基础模型,它支持多语种、多结构数据搜索,并提供高精度的语义重排。通过这种方式,Rerank 3能够大幅提升响应准确度和降低延迟,同时大幅降低成本…...

Linux下网络编程基础知识--协议
网络基础 这一个课程的笔记 相关文章 协议 Socket编程 高并发服务器实现 线程池 协议 一组规则, 数据传输和数据的解释的规则。 比如说依次发送文件的文件名, 文件的大小, 以及实际的文件, 这样规定发送一个文件的顺序以及发送的每一个部分的格式等可以算是一种协议 型协议 …...

在 VS Code 中使用 GitHub Copilot
Code 结合使用。 GitHub Copilot 是什么 GitHub Copilot 是一个可以帮助你更简单、更快速地编写代码的工具,由 GPT-3 提供支持。你只需编写所需代码的描述——例如,编写一个函数来生成一个随机数,或对一个数组进行排序——Copilot 就会为你…...

使用spring-ai快速对接ChatGpt
什么是spring-ai Spring AI 是一个与 Spring 生态系统紧密集成的项目,旨在简化在基于 Spring 的应用程序中使用人工智能(AI)技术的过程。 简化集成:Spring AI 为开发者提供了方便的工具和接口,使得在 Spring 应用中集…...

免费的 ChatGPT 网站(六个)
🔥博客主页: 小羊失眠啦. 🎥系列专栏:《C语言》 《数据结构》 《C》 《Linux》 《Cpolar》 ❤️感谢大家点赞👍收藏⭐评论✍️ 文章目录 一、insCode二、讯飞星火三、豆包四、文心一言五、通义千问六、360智脑 现在智能…...

arm内核驱动-中断
先介绍个东西 ctags 这个工具可以像keil一样在工程里查找跳转,帮我们找到我们想要的东西。 安装教程可以找到,这里只讲怎么用。 在工程目录(包含所有你会用到的头文件等)下,先加载这个命令,可能要等待…...

第十五届蓝桥杯大赛软件赛省赛 C/C++ 大学 B 组
试题 C: 好数 时间限制 : 1.0s 内存限制: 256.0MB 本题总分:10 分 【问题描述】 一个整数如果按从低位到高位的顺序,奇数位(个位、百位、万位 )上 的数字是奇数,偶数位(十位、千位、十万位 &…...
kotlin编译版本
Kotlin和kapt的流行版本通常随着时间而变化,随着新版本的发布,更多的开发者会迁移到这些新版本。不过,由于Kotlin对向后兼容性的强调,大多数近期的Kotlin版本都支持Java 8。 截至本回答的知识截止日期(2023年ÿ…...

【C#】 删除首/尾部字符
代码 static void Main(string[] args){string str "123abc";string strdelete "abc";string str1 str.Trim(1);string strc str1.Trim(c);string str11 str1.TrimStart(1);string strcc str1.TrimEnd(c);string strabc str.Trim(strdelete.ToCharA…...

第十五篇【传奇开心果系列】Python自动化办公库技术点案例示例:深度解读Python 自动化处理图像在各行各业的应用场景
传奇开心果博文系列 系列博文目录Python自动化办公库技术点案例示例系列 博文目录前言一、行业应用场景介绍二、 **计算机视觉研究与开发示例代码**三、人工智能与机器学习示例代码四、医疗健康领域示例代码五、制造业与质量控制示例代码六、农业与环境科学示例代码七、电子商务…...
在软件开发中正确使用MySQL日期时间类型的深度解析
在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件
今天呢,博主的学习进度也是步入了Java Mybatis 框架,目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学,希望能对大家有所帮助,也特别欢迎大家指点不足之处,小生很乐意接受正确的建议&…...

抖音增长新引擎:品融电商,一站式全案代运营领跑者
抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...
数据链路层的主要功能是什么
数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...
高防服务器能够抵御哪些网络攻击呢?
高防服务器作为一种有着高度防御能力的服务器,可以帮助网站应对分布式拒绝服务攻击,有效识别和清理一些恶意的网络流量,为用户提供安全且稳定的网络环境,那么,高防服务器一般都可以抵御哪些网络攻击呢?下面…...

网络编程(UDP编程)
思维导图 UDP基础编程(单播) 1.流程图 服务器:短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...

SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题
分区配置 (ptab.json) img 属性介绍: img 属性指定分区存放的 image 名称,指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件,则以 proj_name:binary_name 格式指定文件名, proj_name 为工程 名&…...
LRU 缓存机制详解与实现(Java版) + 力扣解决
📌 LRU 缓存机制详解与实现(Java版) 一、📖 问题背景 在日常开发中,我们经常会使用 缓存(Cache) 来提升性能。但由于内存有限,缓存不可能无限增长,于是需要策略决定&am…...

nnUNet V2修改网络——暴力替换网络为UNet++
更换前,要用nnUNet V2跑通所用数据集,证明nnUNet V2、数据集、运行环境等没有问题 阅读nnU-Net V2 的 U-Net结构,初步了解要修改的网络,知己知彼,修改起来才能游刃有余。 U-Net存在两个局限,一是网络的最佳深度因应用场景而异,这取决于任务的难度和可用于训练的标注数…...