(六)PostgreSQL的组织结构(3)-默认角色和schema

news2024/11/24 19:08:54

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可能不一样,详情请查看对应版本的官方文档。

谨记:心存敬畏,行有所止。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1607512.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软考135-上午题-【软件工程】-软件配置管理

备注: 该部分考题内容在教材中找不到。直接背题目 一、配置数据库 配置数据库可以分为以下三类: (1) 开发库 专供开发人员使用,其中的信息可能做频繁修改,对其控制相当宽松 (2) 受控库 在生存期某一阶段工作结束时发布的阶段产…

手机拍摄视频怎么做二维码?现场录制视频一键生成二维码

随着手机摄像头的像素不断提升,现在经常会通过手机的拍摄视频,然后发送给其他人查看。当我们想要将一个视频分享给多人去查看时,如果一个个去发送会比较的浪费时间,而且对方还需要下载接受视频后才可以查看,时间成本高…

简化PLC图纸绘制流程:利用SOLIDWORKS Electrical提升效率与准确性

效率一向是工程师比较注重的问题,为了提高工作效率,工程师绞尽脑汁。而在SOLIDWORKS Electrical绘制plc原理图时能有效提高PLC图纸的出图效率,并且可以减少数据误差。 在SOLIDWORKS Electrical绘制PLC图纸时,可以先创建PLC输入/输…

域名被污染了只能换域名吗?

域名污染是指域名的解析结果受到恶意干扰或篡改,使得用户在访问相关网站时出现异常。很多域名遭遇过污染的情况,但是并不知道是域名污染,具体来说,域名污染可能表现为以下情况:用户无法通过输入正确的域名访问到目标网…

24华中杯数学建模C题详解速通

本文针对光纤传感领域的曲线重构问题,提出了一套完整的数学建模与求解方法。通过对三个具体问题的分析和求解,揭示了曲率测量、曲线重构、误差分析等环节的内在联系和数学原理。本文综合运用了光纤传感、数值分析、微分几何等学科的知识,构建了波长-曲率转换模型、曲率连续化模…

Oracle——领先的企业级数据库解决方案

一、WHAT IS ORACLWE: ORACLE 数据库系统是美国 ORACLE 公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S 体系结构的数据库之一,ORACLE 通常应用于大型系统的数…

护眼台灯哪个牌子好?五大护眼效果好的护眼台灯强力推荐

护眼台灯哪个牌子好?护眼台灯比较好的牌子有书客、雷士、爱德华医生等,这些护眼台灯由于研发实力比较强,除了基本的照明功能,在护眼效果方面的表现也是比较不错的,这样的护眼台灯能够真正地起到对眼睛的保护作用&#…

读《AI营销画布》步骤五 保收获(十)

前言 正如书中所说,做到前四步就已经很了不起了,但是,现如今有很多公司的IT部门正从原来的公司分离,成立了不同的科技公司,以确保从费用成本中心变为利润中心,当然,分离出来不一定是AI促进的&am…

【问题处理】银河麒麟操作系统实例分享,adb读写缓慢问题分析

1.问题环境 处理器: HUAWEI Kunpeng 920 5251K 内存: 512 GiB 整机类型/架构: TaiShan 200K (Model 2280K) BIOS版本: Byosoft Corp. 1.81.K 内核版本 4.19.90-23.15.v2101.ky10.aarch64 第三方应用 数据库 2.问题…

OCP Java17 SE Developers 复习题14

答案 C. Since the question asks about putting data into a structured object, the best class would be one that deserializes the data. Therefore, ObjectInputStream is the best choice, which is option C. ObjectWriter, BufferedStream, and ObjectReader are no…

karpathy build make more --- 2

1 Introduction 用多层神经网络实现更复杂一点名字预测器。 2 方案 采用两层全连接层,中间采用tanh作为激活函数,最后一层用softmax,loss用cross-entropy. 2.1 实施 step1: 生成输入的字符,输入三个字符,输出一个字符. 采用了…

java的spring循环依赖、Bean作用域等深入理解

前言 通过之前的几篇文章将Spring基于XML配置的IOC原理分析完成,但其中还有一些比较重要的细节没有分析总结,比如循环依赖的解决、作用域的实现原理、BeanPostProcessor的执行时机以及SpringBoot零配置实现原理(ComponentScan、Import、Impo…

推荐一款websocket接口测试工具

网址:Websocket在线测试-Websocket接口测试-Websocket模拟请求工具 http://www.jsons.cn/websocket/ 很简单输入以ws开后的网址就可以了 这个网址是你后台设置的 如果连接成功会砸提示框内显示相关字样,反之则不行

python爬虫之爬取携程景点评价(5)

一、景点部分评价爬取 【携程攻略】携程旅游攻略,自助游,自驾游,出游,自由行攻略指南 (ctrip.com) import requests from bs4 import BeautifulSoupif __name__ __main__:url https://m.ctrip.com/webapp/you/commentWeb/commentList?seo0&businessId22176&busines…

U.2 NVMe全闪存储阵列在高性能计算环境中的表现

用户利用高性能计算 (HPC) 先进的计算技术来执行大规模的复杂计算任务。这有助于短时间内解决复杂问题,与传统计算方法相比遥遥领先。Infortrend 存储解决方案专门针对密集型 HPC 工作负载进行了优化。新推出的U.2 NVMe全闪存储阵列GS 5024UE在0.3毫秒的延迟下提供1…

镭速助力企业集成OIDC实现安全高效的大文件数据传输

在当今数字化时代,企业尤其是科研机构、研究所和实验室等,对于大量敏感数据的传输安全和效率有着日益增长的需求。面对这一挑战,企业需要一种既能保障数据传输安全,又能提高传输效率的解决方案。镭速,作为一款面向企业…

【C++学习】C++4种类型转换详解

这里写目录标题 🚀C语言中的类型转换🚀为什么C需要四种类型转换🚀C强制类型转换🚀static_cast🚀**reinterpret_cast**🚀const_cast与volatile🚀dynamic_cast 🚀C语言中的类型转换 在…

buuctf——[ZJCTF 2019]NiZhuanSiWei

buuctf——[ZJCTF 2019]NiZhuanSiWei 1.绕过file_get_contents()函数 file_get_contents函数介绍 定义和用法 file_get_contents() 把整个文件读入一个字符串中。 该函数是用于把文件的内容读入到一个字符串中的首选方法。如果服务器操作系统支持,还会使用内存映射…

【opencv】示例-videocapture_starter.cpp 从视频文件、图像序列或连接到计算机的摄像头中捕获帧...

/** * file videocapture_starter.cpp * brief 一个使用OpenCV的VideoCapture与捕获设备,视频文件或图像序列的入门示例 * 就像CV_PI一样简单,对吧? * * 创建于: 2010年11月23日 * 作者: Ethan Rublee * * 修改于: 2013年4月17日 * …

【笔记】十分钟学会正确的github工作流,和开源作者们使用同一套流程

对视频十分钟学会正确的github工作流,和开源作者们使用同一套流程的记录,方便自己回顾和使用。 注1:一个分支 只有一个人在进行 注2: main和master是不同时期对主分支的命名,两者是同一个东西。如果项目已经有了&#…