这些函数提供有关当前系统状态的信息。超级用户对所有系统信息有不受限制的访问权限,但是用户只能查看有关自身当前会话的信息。
系统信息函数
- 1: CURRENT_DATABASE
- 2: CURRENT_LOAD_SOURCE
- 3: CURRENT_SCHEMA
- 4: CURRENT_USER
- 5: DBNAME(函数)
- 6: HAS_TABLE_PRIVILEGE
- 7: LIST_ENABLED_CIPHERS
- 8: SESSION_USER
- 9: 用户
- 10: USERNAME
- 11: VERSION
1 - CURRENT_DATABASE
返回当前数据库的名称,等同于
DBNAME
。
行为类型
稳定语法
注意
括号是可选的。CURRENT_DATABASE()
示例
=> SELECT CURRENT_DATABASE;
CURRENT_DATABASE
------------------
VMart
(1 row)
2 - CURRENT_LOAD_SOURCE
在 COPY 语句的范围内调用时,返回加载所使用的文件名。存在以下例外:
-
如果在
COPY
语句的上下文之外调用函数,则返回 NULL。 -
如果通过未设置源的 UDL 调用函数,则返回字符串
<unknown>
。
COPY LOCAL 不支持此函数。
行为类型
稳定语法
CURRENT_LOAD_SOURCE()
示例
创建表并在加载时使用两个单独文件的名称填充以下其中一列:
=> CREATE TABLE t (c1 integer, c2 varchar(50), c3 varchar(200));
CREATE TABLE
=> COPY t (c1, c2, c3 AS CURRENT_LOAD_SOURCE())
FROM '/home/load_file_1' ON exampledb_node02,
'/home/load_file_2' ON exampledb_node03 DELIMITER ',';
Rows Loaded
-------------
5
(1 row)
=> SELECT * FROM t;
c1 | c2 | c3
----+--------------+-----------------------
2 | dogs | /home/load_file_1
1 | cats | /home/load_file_1
4 | superheroes | /home/load_file_2
3 | birds | /home/load_file_1
5 | whales | /home/load_file_2
(5 rows)
3 - CURRENT_SCHEMA
返回当前架构的名称。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
行为类型
稳定语法
CURRENT_SCHEMA()
注意
您可以不带括号调用此函数。特权
无
示例
以下命令返回当前架构的名称。
=> SELECT CURRENT_SCHEMA();
current_schema
----------------
public
(1 row)
以下命令将返回不带圆括号的相同结果:
=> SELECT CURRENT_SCHEMA;
current_schema
----------------
public
(1 row)
以下命令显示搜索路径中列于当前用户之后的当前架构:
=> SHOW SEARCH_PATH;
name | setting
-------------+---------------------------------------------------
search_path | "$user", public, v_catalog, v_monitor, v_internal
(1 row)
另请参阅
4 - CURRENT_USER
返回包含启动当前数据库连接的用户的名称的 VARCHAR。
行为类型
稳定语法
CURRENT_USER()
注意
-
CURRENT_USER 函数不需要括号。
-
此函数对于权限检查很有用。
-
CURRENT_USER 等同于 SESSION_USER、用户 和 USERNAME。
示例
=> SELECT CURRENT_USER();
CURRENT_USER
--------------
dbadmin
(1 row)
以下命令将返回不带圆括号的相同结果:
=> SELECT CURRENT_USER;
CURRENT_USER
--------------
dbadmin
(1 row)
5 - DBNAME(函数)
返回当前数据库的名称,等同于
CURRENT_DATABASE
。
行为类型
不可变语法
DBNAME()
示例
=> SELECT DBNAME();
dbname
------------------
VMart
(1 row)
6 - HAS_TABLE_PRIVILEGE
返回 true 或 false,以验证用户是否具有表的指定权限。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
行为类型
易变行为类型
稳定语法
HAS_TABLE_PRIVILEGE ( [ user, ] '[[database.]schema.]table', 'privilege' )
参数
-
用户
- 数据库用户的名称或 OID。如果省略,Vertica 会检查当前用户的权限。
-
[database.]schema
数据库和架构。默认架构为
public
。如果指定一个数据库,它必须是当前数据库。-
表
- 要检查的表的名称或 OID。
-
privilege
- 表权限,为以下之一:
特权
非超级用户,为以下之一:
-
表所有者
-
对表架构具有 USAGE 权限,对表具有一项或多项权限
示例
=> SELECT HAS_TABLE_PRIVILEGE('store.store_dimension', 'SELECT');
HAS_TABLE_PRIVILEGE
---------------------
t
(1 row)
=> SELECT HAS_TABLE_PRIVILEGE('release', 'store.store_dimension', 'INSERT');
HAS_TABLE_PRIVILEGE
---------------------
t
(1 row)
=> SELECT HAS_TABLE_PRIVILEGE(45035996273711159, 45035996273711160, 'select');
HAS_TABLE_PRIVILEGE
---------------------
t
(1 row)
7 - LIST_ENABLED_CIPHERS
返回启用的密码套件列表,这些套件是用于保护 TLS/SSL 连接的算法集。
默认情况下,Vertica 使用 OpenSSL 的默认密码套件。有关详细信息,请参阅 OpenSSL 手册页。
语法
LIST_ENABLED_CIPHERS()
示例
=> SELECT LIST_ENABLED_CIPHERS();
SSL_RSA_WITH_RC4_128_MD5
SSL_RSA_WITH_RC4_128_SHA
TLS_RSA_WITH_AES_128_CBC_SHA
另请参阅
8 - SESSION_USER
返回 VARCHAR,其中包含发起当前数据库会话的用户的名称。
行为类型
稳定语法
SESSION_USER()
注意
-
SESSION_USER 函数不要求圆括号。
-
SESSION_USER 等同于 CURRENT_USER、用户 和 USERNAME。
示例
=> SELECT SESSION_USER();
session_user
--------------
dbadmin
(1 row)
以下命令将返回不带圆括号的相同结果:
=> SELECT SESSION_USER;
session_user
--------------
dbadmin
(1 row)
9 - 用户
返回包含启动当前数据库连接的用户的名称的 VARCHAR。
行为类型
稳定语法
USER()
注意
-
USER 函数不需要括号。
-
USER 等同于 CURRENT_USER、SESSION_USER 和 USERNAME。
示例
=> SELECT USER();
current_user
--------------
dbadmin
(1 row)
以下命令将返回不带圆括号的相同结果:
=> SELECT USER;
current_user
--------------
dbadmin
(1 row)
10 - USERNAME
返回包含启动当前数据库连接的用户的名称的 VARCHAR。
行为类型
稳定语法
USERNAME()
注意
-
此函数对于权限检查很有用。
-
USERNAME 等同于 CURRENT_USER、SESSION_USER 和 用户。
示例
=> SELECT USERNAME();
username
--------------
dbadmin
(1 row)
11 - VERSION
返回包含 Vertica 节点的版本信息的 VARCHAR。
行为类型
稳定语法
VERSION()
注意
括号是必需的。示例
=> SELECT VERSION();
VERSION
-------------------------------------------
Vertica Analytic Database v10.0.0-0
(1 row)