云贝教育 |【PostgreSQL PGCA题目解析1】psql元命令\du和\dg都可以列出角色或用户,请问这两个命令是否等价?

news/2024/7/9 21:53:34 标签: postgresql, 数据库

考试科目:PGCA-E-090

考试题量:40 道单项选择题、10 道多项选择题(每题 2 分)

通过分数:60%

考试时间:60min

原文链接:【PostgreSQL PGCA题目解析1】psql元命令\du和\dg都可以列出角色或用户,请问这两个命令是否等价? - 课程体系 - 云贝教育

本文为云贝教育刘峰(微信:yunbee_DBA)原创,请尊重知识产权,转发请注明出处,不接受任何抄袭、演绎和未经注明出处的转载。

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;

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,是等价的。


http://www.niftyadmin.cn/n/5186610.html

相关文章

2023年第九届数维杯国际大学生数学建模挑战赛

2023年第九届数维杯国际大学生数学建模挑战赛正在火热进行,小云学长又在第一时间给大家带来最全最完整的思路代码解析!!! 下面是数维杯B题思路解析: 前面三问主要是绘制趋势图、散点图等这些比较简单的统计学分析方法…

再学二分查找

三种二分查找代表各自的意义 ①区间是左闭右闭,依靠mid来查找目标 // 区间是闭区间[left,right]public int search(int[] nums, int target) {int left 0;int right nums.length - 1;while (left < right) { //重点int mid left (right - left) / 2;if (nums[mid] tar…

android 11安装apk自动获取权限

由于android 11以上版本对于读写权限的进一步限制&#xff0c;安装的apk获取权限的流程又加了一步&#xff0c;对于客户来说多半步也算复杂&#xff0c;Android 保存/读取本地SD卡文件&#xff08;兼容Android 13&#xff09; 根据之前的经验&#xff0c;在安装流程后打开全部…

Hacker 资讯|11 月中下旬区块链黑客松活动汇总

「TinTin Hacker 快讯」是 TinTinLand 建立的一个资讯专栏&#xff0c;汇集近期线上线下的黑客松及 Grant&#xff0c;旨在帮助开发者和区块链爱好者获取最新的黑客松资讯&#xff0c;鼓励他们了解并根据自身情况参与不同的黑客松&#xff0c;更好地建设 Web3 生态。 2023 Wint…

Flume(一)【Flume 概述】

前言 今天实在不知道学点什么好了&#xff0c;早上学了3个多小时的 Flink &#xff0c;整天只学一门技术是很容易丧失兴趣的。那就学点新的东西 Flume&#xff0c;虽然 Kafka 还没学完&#xff0c;但是大数据生态圈的基础组件也基本就剩这倆了。 Flume 概述 生产环境中的数据一…

【开题报告】基于SpringBoot的美术馆预约平台的设计与实现

1.研究背景 美术馆作为一种公共文化机构&#xff0c;承载着艺术展览、文化教育和社会交流的重要职责。然而&#xff0c;传统的美术馆参观方式存在一些问题&#xff0c;如长时间排队购票、座位有限、信息不透明等&#xff0c;这给观众带来了不便&#xff0c;并且给美术馆的管理…

SAP PI/PO中使用UDF解决按字节拆分字符串的需求

需求背景&#xff1a; SAP需要将采购订单信息通过PI发送到SFTP服务器上&#xff0c;生成文件&#xff0c;一般对日项目上文件内容通常都是按照指定的字节数拆分的&#xff0c;而不是字符数&#xff0c;类似下面的格式。 问题点&#xff1a; 如果是使用FTP适配器&#xff0c;则…

PostgreSQL中pg_ctl工具的使用

pg_ctl工具有以下功能&#xff1a; &#xff08;1&#xff09;初始化postgresql数据库实例 &#xff08;2&#xff09;启动、终止或重启postgresql数据库服务 &#xff08;3&#xff09;查看postgresql数据库服务的状态 &#xff08;4&#xff09;让数据库实例重新读取配置…