文章目录


第二十一章 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)