当前位置: 首页 > news >正文

(六)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 自带角色及其用途介绍:

  1. postgres:
    • 这是安装 PostgreSQL 时默认创建的超级用户角色。它拥有数据库中的所有权限,包括创建和删除数据库、管理用户角色、分配权限等。
    • 通常使用 postgres 用户进行数据库的初步设置和管理操作。
  2. pg_signal_backend:
    • 这个角色允许发送信号到同一数据库中的其他会话。例如,可以使用它来取消查询或终止会话。
    • 这个角色主要用于数据库维护和控制操作。
  3. pg_read_all_data:
    • 这个角色主要是在 PostgreSQL 15 版本中引入的,作为一种新的权限管理机制,允许用户读取数据库中所有表和视图的数据,而无需对每个表单独授予权限。
  4. pg_write_all_data:
    • 这个角色主要是在 PostgreSQL 15 版本中引入的,作为一种新的权限管理机制,允许写入所有表和视图(但不包括DDL操作如创建或删除表)的角色,而无需对每个表单独授予权限。
  5. pg_monitor:
    • 查看系统目录中隐藏信息的能力,例如,统计信息或系统表中的某些列。
    • 执行诊断查询,例如,查看执行计划或检查服务器的运行状态。
    • 访问数据库的各种统计视图,这对于分析和优化查询、监控系统性能等任务至关重要。
  6. pg_read_all_settings:
    • 访问所有的 PostgreSQL 配置设置,这包括通过 SHOW 命令、pg_settings 系统视图,或者其他方法访问的设置。
    • 读取包括一些敏感设置在内的配置,而无需被授予超级用户权限。
  7. pg_read_all_stats:
    • 访问 pg_stat 系列视图,这些视图提供了关于数据库操作的详细统计信息,比如每个表的读写频率、索引的使用状况、被执行查询的性能统计等。
    • 访问 pg_statio 系列视图,这些视图提供了关于数据库 I/O 操作的统计数据,比如对表、索引、Toast 表等的磁盘 I/O 统计信息。
    • 能够查看执行计划统计信息,这对于分析查询性能和进行优化是很有帮助的。
  8. pg_read_server_files:
    • 允许读取服务器上的文件。这对于执行某些数据库操作特别有用,比如使用 COPY FROM 命令或 pg_read_file 函数来读取服务器上的文件内容到 PostgreSQL 数据库中。
    • 使用这个角色可以帮助数据库管理员细粒度地控制对服务器文件的访问,从而避免将过高的权限(如超级用户权限)授予不需要这么高权限的用户。
  9. pg_write_server_files:
    • 允许持有该角色的用户写入服务器上的文件。这个角色为数据库操作提供了在服务器文件系统上执行写操作的能力,比如使用 COPY TO 命令将查询结果写入服务器上的文件中,或者通过其他数据库函数创建或修改服务器上的文件内容。
  10. pg_execute_server_program:
    • 允许用户在服务器上执行外部程序,这可以用于从数据库触发操作系统级别的脚本或程序。
    • 这个角色特别适用于那些需要从 PostgreSQL 数据库内部,通过 SQL 命令执行服务器上的外部程序或脚本的情况。
  11. pg_use_reserved_connections:
    • 允许授予权限的用户使用保留的连接。
    • 该角色特别适用于需要确保某些关键操作或关键用户在数据库高负载时仍能连接到数据库的场景。这可能包括自动化的维护脚本、关键任务执行或特定的监控服务等。
  12. pg_create_subscription:
    • 赋予用户创建复制订阅的能力。
    • 该角色特别适用于需要设置和管理逻辑复制的用户或应用。
  13. pg_checkpoint:
    • 允许用户执行CHECKPOINT命令。
  14. pg_stat_scan_tables:
    • 允许用户执行监视功能。但这些功能可能会占用表上的ACCESS SHARE锁,且会持续很长一段时间。
  15. pg_database_owner:
    • 表示当前数据库所属。
      在这里插入图片描述

2 默认schema

PostgreSQL 默认安装时包含一些内建的 schema,最重要的是 public schema。以下是一些 PostgreSQL 自带的、较为重要的 schema 及其用途:

  1. public:

    • 这是 PostgreSQL 数据库中默认的 schema。如果你创建表或其他数据库对象而没有明确指定 schema,这些对象将默认被创建在 public schema 下。
    • 所有用户默认都有权限在 public schema 下创建、修改和删除对象。
  2. pg_catalog:

    • pg_catalog 是 PostgreSQL 存储数据库元数据的地方,比如信息模式(Information Schema)就在这里。它包含了所有内置的函数、数据类型以及系统表等。例如,当你在查询数据类型信息或者查看当前数据库中的所有表时,实际上这些信息都来自于 pg_catalog 中的系统表。
    • 这个 schema 对 PostgreSQL 的运行来说是必需的,而且它对所有用户都是可见的。
  3. information_schema:

    • information_schema 提供了关于数据库对象(如表、视图、列等)的信息的 SQL 标准视图。这些视图提供了一种标准化的方法来查询元数据,无论底层 RDBMS 是什么。
    • 虽然 information_schema 的数据是从 pg_catalog 派生出来的,但 information_schema 提供的信息是以一种更易理解和标准化的形式展现的。
  4. pg_toast:

    • TOAST(The Oversized-Attribute Storage Technique)是 PostgreSQL 处理大型数据行的机制。pg_toast schema 存储了特定 TOAST 数据的结构和信息。当一个表的某列数据超过了页面大小(默认是 8KB)时,PostgreSQL 会使用 TOAST 技术来存储这些大型字段。
    • 通常情况下,普通用户不需要直接与 pg_toast schema 交互。
  5. 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)

背景 各个服务应用&#xff0c;有很多restful api&#xff0c;不论是用哪种方式发布&#xff0c;部署&#xff0c;注册&#xff0c;发现&#xff0c;有很多场景需要各个微服务之间进行服务的调用&#xff0c;大多时候返回的json格式响应数据多&#xff0c;如果是前端直接调用倒…...

代码随想录算法训练营第三十六天| 435. 无重叠区间、 763.划分字母区间、56. 合并区间

435 题目&#xff1a; 给定一个区间的集合 intervals &#xff0c;其中 intervals[i] [starti, endi] 。返回 需要移除区间的最小数量&#xff0c;使剩余区间互不重叠 。 题目链接&#xff1a;435. 无重叠区间 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; …...

【AIGC调研系列】rerank3是什么

Rerank 3是一个针对企业搜索和检索辅助生成&#xff08;RAG&#xff09;系统优化的新型基础模型&#xff0c;它支持多语种、多结构数据搜索&#xff0c;并提供高精度的语义重排。通过这种方式&#xff0c;Rerank 3能够大幅提升响应准确度和降低延迟&#xff0c;同时大幅降低成本…...

Linux下网络编程基础知识--协议

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

在 VS Code 中使用 GitHub Copilot

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

使用spring-ai快速对接ChatGpt

什么是spring-ai Spring AI 是一个与 Spring 生态系统紧密集成的项目&#xff0c;旨在简化在基于 Spring 的应用程序中使用人工智能&#xff08;AI&#xff09;技术的过程。 简化集成&#xff1a;Spring AI 为开发者提供了方便的工具和接口&#xff0c;使得在 Spring 应用中集…...

免费的 ChatGPT 网站(六个)

&#x1f525;博客主页&#xff1a; 小羊失眠啦. &#x1f3a5;系列专栏&#xff1a;《C语言》 《数据结构》 《C》 《Linux》 《Cpolar》 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 文章目录 一、insCode二、讯飞星火三、豆包四、文心一言五、通义千问六、360智脑 现在智能…...

arm内核驱动-中断

先介绍个东西 ctags 这个工具可以像keil一样在工程里查找跳转&#xff0c;帮我们找到我们想要的东西。 安装教程可以找到&#xff0c;这里只讲怎么用。 在工程目录&#xff08;包含所有你会用到的头文件等&#xff09;下&#xff0c;先加载这个命令&#xff0c;可能要等待…...

第十五届蓝桥杯大赛软件赛省赛 C/C++ 大学 B 组

试题 C: 好数 时间限制 : 1.0s 内存限制: 256.0MB 本题总分&#xff1a;10 分 【问题描述】 一个整数如果按从低位到高位的顺序&#xff0c;奇数位&#xff08;个位、百位、万位 &#xff09;上 的数字是奇数&#xff0c;偶数位&#xff08;十位、千位、十万位 &…...

kotlin编译版本

Kotlin和kapt的流行版本通常随着时间而变化&#xff0c;随着新版本的发布&#xff0c;更多的开发者会迁移到这些新版本。不过&#xff0c;由于Kotlin对向后兼容性的强调&#xff0c;大多数近期的Kotlin版本都支持Java 8。 截至本回答的知识截止日期&#xff08;2023年&#xff…...

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

OpenMTP:macOS上最强大的免费Android文件传输终极解决方案

OpenMTP&#xff1a;macOS上最强大的免费Android文件传输终极解决方案 【免费下载链接】openmtp OpenMTP - Advanced Android File Transfer Application for macOS 项目地址: https://gitcode.com/gh_mirrors/op/openmtp 还在为macOS和Android设备之间的文件传输而烦恼…...

ShawzinBot技术解析:基于MIDI的Warframe乐器自动化演奏系统实现

ShawzinBot技术解析&#xff1a;基于MIDI的Warframe乐器自动化演奏系统实现 【免费下载链接】ShawzinBot Convert a MIDI input to a series of key presses for the Shawzin 项目地址: https://gitcode.com/gh_mirrors/sh/ShawzinBot ShawzinBot是一款专为《Warframe》…...

集团总部失控(二):谁制造了“诸侯”?

集团管控失灵&#xff0c;常见的归因是子公司“不听话”“各自为政”“挑战规则”。这些现象确实存在&#xff0c;但若深究其根源&#xff0c;往往会发现&#xff1a;子公司的问题只是表层&#xff0c;更深层的原因埋藏在总部自身的治理逻辑与管理方式中。 一、历史形成的权威…...

2026年国内酒吧管理系统有哪些?15款软件功能与适用场景

国内酒馆市场竞争摆在那里&#xff0c;靠手工记账和人盯人管理&#xff0c;越来越吃力。有行业统计显示&#xff0c;用了专业管理系统之后&#xff0c;酒吧的库存损耗平均能降18%&#xff0c;会员复购率提升25%以上。这笔账算下来&#xff0c;系统不是多出来的开支&#xff0c;…...

* LangChain4j中的会话记忆ChatMemory

在构建 AI 志愿填报顾问时&#xff0c;一个很自然的期望是它能记住我们之前聊过什么&#xff0c;而不是每次都像第一次见面一样。大模型本身是无状态的&#xff0c;每次调用都是独立的&#xff0c;要实现“记忆”&#xff0c;唯一的方法就是把聊天历史连同新问题一起发给模型。…...

苏州晟雅泰电子:关于长鑫存储与兆易创新的关系

长鑫存储&#xff08;及其母公司长鑫科技&#xff09;与兆易创新的关系极为紧密&#xff0c;是由一位核心人物——董事长朱一明联结而成的深度战略联盟。这两家公司在股权、人事和业务等多个层面相互绑定&#xff0c;形成了“一个核心、两个支点”的独特格局。以下是其关系的具…...

通讯的数学理论

1948年&#xff0c;香农在题为《通讯的数学理论》指出&#xff0c;信息是用来消除随机不定性的东西&#xff0c;创造宇宙万物的最基本单位是信息。...

Node.js 服务中如何异步调用 Taotoken 聚合接口实现 AI 功能集成

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 Node.js 服务中如何异步调用 Taotoken 聚合接口实现 AI 功能集成 在 Node.js 服务中集成大模型能力&#xff0c;通常意味着你需要处…...

3步解决游戏手柄兼容性问题:XOutput完全指南

3步解决游戏手柄兼容性问题&#xff1a;XOutput完全指南 【免费下载链接】XOutput DirectInput to XInput wrapper 项目地址: https://gitcode.com/gh_mirrors/xo/XOutput 你是否遇到过这样的尴尬时刻&#xff1f;心爱的旧手柄在最新游戏里毫无反应&#xff0c;或者新买…...

别再裸发ROS图像了!image_transport保姆级教程:从压缩传输到参数调优,一次搞定

别再裸发ROS图像了&#xff01;image_transport保姆级教程&#xff1a;从压缩传输到参数调优&#xff0c;一次搞定 在机器人视觉开发中&#xff0c;图像传输往往是性能瓶颈的关键所在。许多开发者习惯性地使用ros::Publisher/Subscriber直接处理图像数据&#xff0c;却不知这种…...