首页 > 数据库 >PostgreSQL的视图pg_namespace

PostgreSQL的视图pg_namespace

时间:2024-06-04 12:29:40浏览次数:31  
标签:10 PostgreSQL postgres oid namespace 视图 pg 命名

PostgreSQL的视图pg_namespace

基础信息
OS版本:Red Hat Enterprise Linux Server release 7.9 (Maipo)
DB版本:16.2
pg软件目录:/home/pg16/soft
pg数据目录:/home/pg16/data
端口:5777

在 PostgreSQL 中,pg_namespace 是一个系统表,用于存储所有命名空间(schema)的相关信息。命名空间在 PostgreSQL 中用于组织数据库对象,如表、视图、函数等,以避免名称冲突。

pg_namespace 表结构

以下是 pg_namespace 表的主要字段及其含义:

  • oid:对象标识符,这是 pg_namespace 表中每行的唯一标识符。
  • nspname:命名空间的名称。
  • nspowner:拥有该命名空间的角色(用户)的 OID。
  • nspacl:命名空间的访问控制列表(ACL,Access Control List),用于定义哪些用户或组具有哪些权限。

以下是 pg_namespace 表结构的查询示例:

white=# \d+ pg_namespace;
                                       Table "pg_catalog.pg_namespace"
  Column  |   Type    | Collation | Nullable | Default | Storage  | Compression | Stats target | Description 
----------+-----------+-----------+----------+---------+----------+-------------+--------------+-------------
 oid      | oid       |           | not null |         | plain    |             |              | 
 nspname  | name      |           | not null |         | plain    |             |              | 
 nspowner | oid       |           | not null |         | plain    |             |              | 
 nspacl   | aclitem[] |           |          |         | extended |             |              | 
Indexes:
    "pg_namespace_oid_index" PRIMARY KEY, btree (oid)
    "pg_namespace_nspname_index" UNIQUE CONSTRAINT, btree (nspname)
Access method: heap

white=# 

查询示例

列出所有命名空间(schema)

要查看数据库中所有的命名空间,可以使用以下查询:

white=# select * from pg_namespace;
  oid  |      nspname       | nspowner |                            nspacl                             
-------+--------------------+----------+---------------------------------------------------------------
    99 | pg_toast           |       10 | 
    11 | pg_catalog         |       10 | {postgres=UC/postgres,=U/postgres}
  2200 | public             |     6171 | {pg_database_owner=UC/pg_database_owner,=U/pg_database_owner}
 13918 | information_schema |       10 | {postgres=UC/postgres,=U/postgres}
 16506 | yewu1              |       10 | 
 16507 | yewu2              |       10 | 
 16727 | repack             |       10 | 
 17008 | pg_temp_3          |       10 | 
 17009 | pg_toast_temp_3    |       10 | 
(9 rows)

此查询会返回所有命名空间的名称。

在输出中,nspacl 列显示每个命名空间的 ACL。解释权限:

  • U:USAGE 权限,允许访问命名空间中的对象,但不允许创建新对象。
  • C:CREATE 权限,允许在命名空间中创建新对象。

小结

pg_namespace 系统表在 PostgreSQL 中用于管理命名空(schema),它包含所有命名空间的相关信息,如名称、所有者和权限。通过查询 pg_namespace 表,可以检索和管理数据库中命名空间的详细信息。理解和使用这个表,对于数据库的组织和权限管理非常重要。

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

标签:10,PostgreSQL,postgres,oid,namespace,视图,pg,命名
From: https://blog.csdn.net/lee_vincent1/article/details/139425431

相关文章

  • 揭秘PostgreSQL:如何查询表字段名称
    哈喽,大家好,我是木头左!PostgreSQL简介PostgreSQL是一个功能强大、开源的对象-关系型数据库管理系统(ORDBMS),它提供了许多高级功能,如事务支持、多版本并发控制(MVCC)、全文搜索等。PostgreSQL广泛应用于各种场景,如Web应用开发、企业级应用、数据仓库等。因此,掌握PostgreSQL的基本操......
  • PostgreSQL:所有支持的数据类型及建表语句实例
    哈喽,大家好,我是木头左!一、引言在当今这个数据驱动的时代,数据库已经成为了企业和个人不可或缺的工具。而在众多数据库产品中,PostgreSQL以其强大的功能和高度的可扩展性,受到了越来越多开发者的青睐。那么,PostgreSQL支持哪些数据类型呢?本文将为大家详细解析,并通过建表语句举例说......
  • repmgr+keepalived+pgbouncer构建postgresql集群
    安装环境操作系统:openeuler22LTSSP3数据库:postgresql16.3两台已经安装了数据库的服务器10.11.110.46 node110.11.110.47 node2配置node1和node2之间的免密登录,以及postgres用户需要无密执行systemd启停数据库服务。echo"postgresALL=(root)NOPASSWD:/usr/bin/sys......
  • 修改postgresql管理员密码
    1.切换到postgres用户:sudo-i-upostgres2.进入PostgreSQLShell:psql3.设置postgres用户的密码:ALTERUSERpostgresPASSWORD'new_password';4.退出PostgreSQLShell和postgres用户的shell:\q5.使用新密码登录:psql-Upostgres-W输入新设置的密码以登录。如......
  • Django视图与路由:打造你的网络帝国
    Hello,我是阿佑,上期给大家讲了DjangoORM魔法:用Python代码召唤数据库之灵!今天将带大家深入探讨了视图的工作原理、如何编写高效的函数视图和类视图,以及如何巧妙地利用URL路由来提升应用的用户体验和可维护性。通过实际案例和代码示例,揭示了Django视图与路由设计的艺术,帮助......
  • PostgreSQL的内存参数
    PostgreSQL的内存参数基础信息OS版本:RedHatEnterpriseLinuxServerrelease7.9(Maipo)DB版本:16.2pg软件目录:/home/pg16/softpg数据目录:/home/pg16/data端口:5777PostgreSQL提供了多种内存参数,可以通过调整这些参数来优化数据库的性能。以下是一些主要的内存参......
  • PostgreSQL启动报错“could not map anonymous shared memory: Cannot allocate memor
    PostgreSQL启动报错“couldnotmapanonymoussharedmemory:Cannotallocatememory”基础信息OS版本:RedHatEnterpriseLinuxServerrelease7.9(Maipo)DB版本:16.2pg软件目录:/home/pg16/softpg数据目录:/home/pg16/data端口:5777报错[pg16@test~]$pg_ctlst......
  • openeuler源码安装Postgresql 16
    准备条件OpenEuler(虚拟机):版本:22.03-LTS-SP3下载地址:https://www.openeuler.org/zh/download/PostgreSQL:版本:16.3源码包下载地址:https://www.postgresql.org/ftp/source/操作系统安装安装过程与centos基本一致,此处就省略了,安装的时候可以把需要的网络工具和开发工具包勾......
  • EXCEL数据透视图中的日期字段,怎样自动分出年、季度、月的功能?
    在excel里,这个果然是有个设置的地方,修改后就好了。点击文件选项卡,选项,在高级里,将图示选项的勾选给取消,然后再创建数据透视表或透视图,日期就不会自动组合了:这个选项只对新创建数据透视表、数据透视图有效。对已经创建好的数据透视表、数据透视图,无法“自动”取消已经形成的......
  • 如何将 Langfuse 链接到自有 PostgreSQL 数据库并升级 PostgreSQL 版本
    在本文中,我们将介绍如何将Langfuse应用程序链接到自有的PostgreSQL数据库,并升级PostgreSQL以支持jsonb类型。前提条件运行CentOS7的服务器已安装的PostgreSQL9.2或更低版本需要将Langfuse连接到自有数据库,并升级PostgreSQL以支持jsonb类型1.......