文章
姚 鑫 · 二月 1, 2021 阅读大约需 2 分钟

第二十一章 Caché 变量大全 $USERNAME 变量

第二十一章 Caché 变量大全 $USERNAME 变量

包含当前进程的用户名。

大纲

$USERNAME

描述

$USERNAME包含当前进程的用户名。可以采用以下两种形式之一:

  • 当前用户的名称;例如:Mary。如果不允许多个安全域,则返回此值。
  • 当前用户的名称和系统地址;例如:Mary@jupiter。如果允许多个安全域,则返回此值。

要允许多个安全域,请转到管理门户,选择系统管理、安全、系统安全、系统范围安全参数。选中允许多个安全域复选框。对此设置的更改将应用于新调用的进程;更改它不会影响当前进程返回的值。

不能使用set命令或new命令修改此值。但是,新的$ROLES还会堆叠当前的$username值。

通常,$username值是在连接时指定的用户名。但是,如果允许未经验证的访问,则用户终端或ODBC客户端可以连接到Caché,而无需指定用户名。在本例中,$username包含字符串“UnnownUser”

使用JOB命令创建进程时,它继承与其父进程相同的$USERNAME$ROLES值。

可以使用SQL CREATE USER语句创建用户名,使用SQL DROP USER语句删除用户名。可以使用SQL ALTER USER语句更改用户密码。通过使用SQL GRANT语句或使用系统实用程序向用户添加角色,可以为用户分配角色。您可以使用$ROLES特殊变量访问分配给当前进程的角色列表。可以使用SQL REVOKE语句撤销用户的角色。

$USERNAME在CachéSQL中用作USER、CURRENT_USER和SESSION_USER的默认值。

可以通过调用$SYSTEM.Process.UserName()方法返回当前进程或指定进程的用户名。

示例

下面的示例返回当前进程的用户名。

DHC-APP>WRITE $USERNAME
yx

下面的示例返回当前进程的域名。

DHC-APP>WRITE $PIECE($USERNAME,"@",2)
20
1 0 0 17