pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
表 4.25. 会话信息函数
| 名称 | 返回类型 | 描述 |
|---|---|---|
current_user |
name |
当前执行上下文的用户名 |
session_user |
name |
会话用户名 |
user |
name |
等价于 current_user |
session_user 是发起数据库 连接的用户;它在该连接期间是固定的。 current_user 是适用于 权限检查的用户标识符。当前它总是等于会话 用户,但将来可能会有“setuid” 函数和 其他允许当前用户临时更改的设施。 用 Unix 的说法,会话用户是“真实用户”, 当前用户是“有效用户”。
注意这些函数在 SQL 中具有特殊的语法地位: 调用它们时不能带尾部的圆括号。
函数 getpgusername() 是 current_user 的已废弃等价形式。
表 4.26. 系统信息函数
| 名称 | 返回类型 | 描述 |
|---|---|---|
version |
text |
PostgreSQL 版本信息 |
version() 返回一个描述 PostgreSQL 服务器版本的字符串。
表 4.27. 访问权限查询函数
| 名称 | 返回类型 | 描述 |
|---|---|---|
has_table_privilege(user, table, access) |
boolean |
用户是否有访问表的权限 |
has_table_privilege(table, access) |
boolean |
当前用户是否有访问表的权限 |
has_table_privilege 判断一个用户 能否以某种特定方式访问一个表。用户可以 按名称或按 ID (pg_user.usesysid)指定,如果省略该参数 则假定为 current_user。表可以按名称 或按 OID 指定。(因此 has_table_privilege 实际上有六种变体, 可以通过参数的数量和类型区分。)所需的访问类型 由一个文本字符串指定,它必须求值为 SELECT、INSERT、UPDATE、 DELETE、RULE、REFERENCES 或 TRIGGER 之一。(但字符串的大小写无关紧要。)
表 4.28. 目录信息函数
| 名称 | 返回类型 | 描述 |
|---|---|---|
pg_get_viewdef(viewname) |
text |
获取视图的 CREATE VIEW 命令 |
pg_get_ruledef(rulename) |
text |
获取规则的 CREATE RULE 命令 |
pg_get_indexdef(indexOID) |
text |
获取索引的 CREATE INDEX 命令 |
pg_get_userbyid(userid) |
name |
根据给定的 ID 获取用户名 |
这些函数从系统目录中提取信息。 pg_get_viewdef()、pg_get_ruledef() 和 pg_get_indexdef() 分别重构造视图、规则或 索引的创建命令。(注意,这是反编译的 重构造,不是该命令的逐字文本。) pg_get_userbyid() 根据一个 usesysid 值提取用户名。
表 4.29. 注释信息函数
| 名称 | 返回类型 | 描述 |
|---|---|---|
obj_description(objectOID, tablename) |
text |
获取数据库对象的注释 |
obj_description(objectOID) |
text |
获取数据库对象的注释(已废弃) |
col_description(tableOID, columnnumber) |
text |
获取表列的注释 |
这些函数提取先前用 COMMENT 命令存储的注释。如果 找不到与指定参数匹配的注释,则返回 NULL。
obj_description() 的双参数形式返回由其 OID 和包含它的系统目录的名称指定的数据库对象的 注释。例如, obj_description(123456,'pg_class') 会检索 OID 为 123456 的表的注释。 obj_description() 的单参数形式只需要 对象 OID。它现在已被废弃,因为无法保证 OID 在不同的系统目录中是唯一的;因此可能返回 错误的注释。
col_description() 返回表列的注释, 由其表的 OID 和列号指定。 obj_description() 不能用于表列,因为 列没有自己的 OID。
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。