(六)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自动化办公库技术点案例示例系列 博文目录前言一、行业应用场景介绍二、 **计算机视觉研究与开发示例代码**三、人工智能与机器学习示例代码四、医疗健康领域示例代码五、制造业与质量控制示例代码六、农业与环境科学示例代码七、电子商务…...

国防科技大学计算机基础课程笔记02信息编码
1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...

TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...
在rocky linux 9.5上在线安装 docker
前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...
【磁盘】每天掌握一个Linux命令 - iostat
目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...

srs linux
下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...

相机从app启动流程
一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...

Python爬虫(一):爬虫伪装
一、网站防爬机制概述 在当今互联网环境中,具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类: 身份验证机制:直接将未经授权的爬虫阻挡在外反爬技术体系:通过各种技术手段增加爬虫获取数据的难度…...
VTK如何让部分单位不可见
最近遇到一个需求,需要让一个vtkDataSet中的部分单元不可见,查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行,是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示,主要是最后一个参数,透明度…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...