首页 > 数据库 >【云贝教育】PostgreSQL PGCA题库解析-1

【云贝教育】PostgreSQL PGCA题库解析-1

时间:2023-11-21 16:04:37浏览次数:38  
标签:PostgreSQL postgres roles 云贝 catalog rolname PGCA du pg

psql元命令\du和\dg都可以列出角色或用户,请问这两个命令是否等价?

A.等价

B.不等价

C.不好说

D.不确定

参考答案:A


解析:

要确认某个封装命令是否等价,只需要看后台调用的SQL即可。

一、开启SQL跟踪功能

1.1 修改参数,开启sql跟踪

修改前
#log_statement = 'none'                   # none, ddl, mod, all
修改后
log_statement = 'all'                   # none, ddl, mod, all

1.2 重载使参数生效

[postgres@ora19c02 data]$ pg_ctl reload -D  $PGDATA

二、测试功能

2.1 du命令

[postgres@ora19c02 data]$ psql -d testdb
psql (15.4)
Type "help" for help.
testdb=# \du
List of roles
Role name |                         Attributes                   | Member of
-----------+------------------------------------------------------------+-------
postgres  | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
test      |                                                            | {}

查看日志输出

2023-10-23 09:42:57.547 CST [56704] LOG:  statement: SELECT r.rolname, r.rolsuper, r.rolinherit,
          r.rolcreaterole, r.rolcreatedb, r.rolcanlogin,
          r.rolconnlimit, r.rolvaliduntil,
          ARRAY(SELECT b.rolname
                FROM pg_catalog.pg_auth_members m
                JOIN pg_catalog.pg_roles b ON (m.roleid = b.oid)
                WHERE m.member = r.oid) as memberof
        , r.rolreplication
        , r.rolbypassrls
        FROM pg_catalog.pg_roles r
        WHERE r.rolname !~ '^pg_'
        ORDER BY 1; 作者:云贝教育 https://www.bilibili.com/read/cv27545596/ 出处:bilibili

2.2 du命令

testdb=# \dg
List of roles
Role name |                         Attributes                         | Member of
-----------+------------------------------------------------------------+-------
postgres  | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
test      |                                                            | {}

查看日志输出

2023-10-23 09:43:30.543 CST [56704] LOG:  statement: SELECT r.rolname, r.rolsuper, r.rolinherit,
r.rolcreaterole, r.rolcreatedb, r.rolcanlogin,
r.rolconnlimit, r.rolvaliduntil,
ARRAY(SELECT b.rolname
FROM pg_catalog.pg_auth_members m
JOIN pg_catalog.pg_roles b ON (m.roleid = b.oid)
WHERE m.member = r.oid) as memberof
, r.rolreplication
, r.rolbypassrls
FROM pg_catalog.pg_roles r
WHERE r.rolname !~ '^pg_'
ORDER BY 1;

三、结论

由上述实验可以得出结论,两者调用的是同一个SQL,是等价的。

标签:PostgreSQL,postgres,roles,云贝,catalog,rolname,PGCA,du,pg
From: https://blog.51cto.com/u_16241820/8504425

相关文章

  • PostgreSQL - Transaction Isolation Level
     zzh@ZZHPC:~$dockerrun--namepostgres16-p5432:5432-ePOSTGRES_USER=root-ePOSTGRES_PASSWORD=aaa-dpostgres:alpine8e36b7bdc47572723a416c319b83f20b2eac7ef25adb3ac1a875e909f45ebdb6zzh@ZZHPC:~$dockerexec-itpostgres16createdb--username=root-......
  • PostgreSQL的学习与安装
    PG的定义:与mysql的区别:Linux下载PG的路径:https://www.postgresql.org/download/#InstalltherepositoryRPM:sudoyuminstall-yhttps://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm#InstallPostgreSQL:sudoyuminsta......
  • Docker - Run PostgreSQL database
    zzh@ZZHPC:~$dockerpullpostgres:alpinezzh@ZZHPC:~$dockerimagesREPOSITORYTAGIMAGEIDCREATEDSIZEpostgresalpine642d75c6be0c9daysago245MB zzh@ZZHPC:~$dockerrun--namepostgres16-p5432:5432-ePOSTGRES_......
  • postgresql 16主要新特性
    继postgresql15新特性后,pg16已经发布,这个版本的主要特性如下:1、逻辑复制支持级联,不一定要从primary开始;2、逻辑复制支持订阅自己,也就是真正的双主可以通过逻辑复制内置订阅实现了,不需要依赖三方,如pglogical3、copy性能提升明显,某些场景下300%4、SIMD支持数组和json、子事务搜......
  • Windows环境安装PostgreSQL
    Windows环境安装PostgreSQL安装步骤要在DockerDesktop上安装PostgreSQL数据库,请按照以下步骤进行操作:首先,确保您已经安装了DockerDesktop,并且它正在运行。打开终端或命令提示符,并输入以下命令来从DockerHub下载并运行PostgreSQL镜像:dockerrun--namemy-postgres-e......
  • PostgreSQL 和 MySQL 技术全面剖析
    本文介绍MySQL和PostgreSQL的一些特性对比,让大家了解二者的优劣,更好的做出选择。当前国内的现状,互联网公司使用MySQL的较多,PostgreSQL的使用比例反而不高,但相信看到PG的新特性后,你会爱上她。当然MySQL作为最流行的数据库,依然会吸引大部分人的眼球。PostgreSQL标榜自己是世界上最......
  • postgresql 表膨胀及优化
    1.什么是表膨胀表膨胀是指表的数据和索引所占文件系统的空间,在有效数据量并未发生大的变化的情况下,不断增大。久而久之,关系文件被大量空洞填满,浪费了大量的磁盘空间。甚至某些特殊场景下。一个表中只有一条简单的数据,但是表对应的物理文件可能已经达到M级甚至G级。2.表膨胀危害·空......
  • PostgreSQL技术大讲堂 - 第34讲:调优工具pgBagder部署
       PostgreSQL从小白到专家,是从入门逐渐能力提升的一个系列教程,内容包括对PG基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容,希望对热爱PG、学习PG的同学们有帮助,欢迎持续关注CUUGPG技术大讲堂。 第34讲:调优工具pgBagder部署 第34讲:11月18日(周六)......
  • 源码安装PostgreSQL
    准备工作更新系统。yum-yupdate安装依赖。yum-ygroupinstall"Developmenttools"yum-yinstallreadline-devel源码安装PostgreSQL创建postgres用户。groupaddpostgresuseradd-gpostgrespostgres创建安装目录并授权。mkdir-p/usr/local/postgres15.3......
  • 【CentOS】CentOS7安装PostgreSQL
    1、安装PostgreSQL使用以下命令安装PostgreSQL:sudoyuminstallpostgresql-serverpostgresql-contrib 2、初始化数据库执行以下命令来初始化PostgreSQL数据库:sudopostgresql-setupinitdb 3、启动PostgreSQL服务启动PostgreSQL服务&& 设置PostgreSQL......