|
4.13. 杂项函数Table 4-25. 会话信息函数
session_user 是初始化数据库联接的用户,在该次联接过程 中固定. current_user 是用于权限检查的用户标识.目前 它总是等于会话用户,但是在将来可能有 "setuid" 函数和其他 它总是等于会话用户,但是在将来可能有 "setuid" 函数和其他 允许当前用户临时改变身份的机制,那么会话用户是 "真实用户" 而当前用户是 "有效用户" . 请注意这些函数在 SQL 里有特殊的语意状态∶调用时结尾 不要跟着园括号.
version() 返回一个描述 PostgreSQL 服务器的版本的字串. Table 4-27. 访问权限查询函数
has_table_privilege 判断一个用户是否可以用某种 特定的方式访问一个表.该用户可以通过名字或者 ID ( pg_user . usesysid ) 来声明,如果省略该参数,则使用 current_user . 该表可以通过名字或者 OID 声明.(因此,实际上有六种 has_table_privilege 的变体,我们可以通过它们的参数数目 和类型来区分它们.) 所希望的访问类型是用一个文本字串来声明的,它们必须得出下面的几个 数值之一∶ SELECT , INSERT , UPDATE , DELETE , RULE , REFERENCES ,或 TRIGGER .(当然,字串的大小写没什么关系.) Table 4-28. 表信息函数
这些函数从系统表中抽取一定信息. pg_get_viewdef() , pg_get_ruledef() , 和 pg_get_indexdef() 分别从一个视图,规则,或者索引 上重新构造创建它们的命令.(请注意这里是一个反编译的重新构造, 而不是该命令的原文.) pg_get_userbyid() 获取给出 的一个 usesysid 数值对应的用户名. Table 4-29. 注释信息函数
这些函数将原来用 COMMENT 命令存储的评注抽取出来. 如果没有找到匹配声明的参数的评注,则返回 NULL . 两个参数形式的 obj_description() 返回一个数据库 对象的评注,该对象是通过其 OID 和其包含系统表的名字声明的. 比如, obj_description(123456,'pg_class') 将返回 OID 为 12345 的表的评注.一个参数的 obj_description() 只要求对象 OID.它现在已经废弃了,因为我们不再保证 OID 在不同的 系统表之间是唯一的;因此可能会返回错误的评注. col_description() 返回一个表的字段的评注, 它是通过它的表和字段号的 OID 来声明的. 我们不能将 obj_description() 用于表字段, 因为字段没有自己的 OID. |