代理用户属性(UNIX™、Linux™)

使用 GRANT 语句的 ACCESS TO PROPERTIES 子句来将用户映射到访问 GBase 8s 资源所需要的代理用户属性。

注:

仅 DBSA 可外部地将认证的用户映射到有效的代理用户属性。如果 USERMAPPING 配置参数设置为启用支持被映射的用户,则 DBSA 发出 GRANT ACCESS TO PROPERTIES 语句来将用户映射到与适当的授权级别对应的属性。

被映射的用户可以代理用户属性连接到 GBase 8s ,如果他们以可插拔的认证模块(PAM)或单点登录(SSO)认证的话。

被映射的用户可以代理用户属性连接到 GBase 8s ,如果他们以可插拔的认证模块(PAM)认证的话。

ACCESS TO PROPERTIES 子句
元素 描述 限制 语法
directory 存储用户文件的目录的路径名称。 长度不超过 255 字节,且必须符合您的操作系统的规则。directory 还必须:
  • 属于被映射的 user_IDgroup_ID
  • 有所有者的读、写和执行许可
  • 没有 PUBLIC 写许可
用引号括起的字符串
group_ID 您想要将 user 映射到的组标识符编号。group_id 值的列表或您指定的值必须括在括号中。 group_ID 不可为:
  • 带有管理权限(DBSA、DBSSO、AAO 和 BARGROUP)的组 ID
  • 组 0(root,有时称为 wheelsystem
  • 与组 bin 或组 sys 关联的组 ID

组 ID 必须在 /etc/gbasedbt/allowed.surrogates 文件中存在。

文字的数值
group_name 现有的操作系统组的名称,该组有您想要映射 user 到的许可。group_name 值的列表必须括在括号中。 长度不可超过 32 字节。

组名必须在 /etc/gbasedbt/allowed.surrogates 文件中存在。

所有者名称
privilege 分配给 user 的管理权限。有效值如下:
  • DBSA
  • DBSSO
  • AAO
  • BARGROUP

privilege 值或多个值必须括在括号中。

USERMAPPING 配置参数必须设置为 ADMIN 来以 AUTHORIZATION 关键字授予服务器管理权限。 用引号括起的字符串
user 您正在映射到用户属性的指定用户的授权标识符。 必须为认证的授权标识符 所有者名称
user_ID 您想要将 user 映射到的那个用户标识符编号。 user_ID 不可为属于用户 root 或用户 gbasedbt 的用户。

用户 ID 必须在 /etc/gbasedbt/allowed.surrogates 文件中存在。

文字的数值
OS_user_name GBase 8s 主计算机上的现有的 OS 用户账号的名称,有您想要将 user 映射的许可。 必须符合您的操作系统的规则。

用户名必须在 /etc/gbasedbt/allowed.surrogates 文件中存在。

所有者名称

用法

最佳实践是将 user 映射到特定的 OS 用户名,保留该用户名仅作为代理用户身份。您可以 GROUP 关键字添加与代理用户身份相关联的组,并以 HOME 关键字更改 home 目录。如果操作系统管理员已在 /etc/gbasedbt/allowed.surrogates 文件中指定了可接受的代理,则您仅可将用户映射到指定的 OS 用户或组。

如果您将 user 映射到用户 ID 编号,那么请记住不要以相同的编号在 GBase 8s 主计算机上创建用户账号。

USERMAPPING 配置参数必须设置为 ADMIN,以便以 ADMINISTRATOR 关键字分配 user 一服务器管理权限。

注:

不推荐使用此 AUTHORIZATION 子句(以及 ALTER USER、CREATE USER 或 CREATE DEFAULT USER 语句的 AUTHORIZATION 子句)。不同的语法将在未来的版本中支持角色分离。

不可在同一语句中同时使用 PUBLIC 与 AUTHORIZATION 关键字,因为不可将服务器管理员权限授予 PUBLIC 组。

以 HOME 关键字指定用户文件的目录是可选的,但在有些情况下,强烈建议这样做。当将一个在外部认证了的用户映射到代理用户名,但未在 GRANT ACCESS TO 语句中指定 HOME 目录时,被映射的用户与 GBase 8s 主计算机上的用户账户有相同的 home 目录。当以不设置 home 目录的方式将用户映射到代理用户身份时,则 GBase 8s $GBASEDBTDIR/users 中为用户文件创建目录。在后面这种情况下,$GBASEDBTDIR/users 中的目录名称采用 uid.ID_number 的形式(例如,uid.101)。

示例

此章节中的语法和解释是对下列环境的示例,此处的缩写词 GID 是 组 ID 编号的缩写,缩写词 UID 是 用户 ID 编号 的缩写:

将在外部认证了的用户映射到代理用户名称:

管理员通过发出下列 GRANT 语句将 bob 映射到用户 fred 已经存在的数据库服务器访问权限:

GRANT ACCESS TO bob PROPERTIES USER fred;

GBase 8s 访问授予所有在外部认证了的用户:

在此环境中, GBase 8s 主计算机上的用户 dbuser 账户的目的是将数据库服务器访问授权给被映射的用户。有这么一种情况,有许多被映射的用户且他们不需要知道在 home 目录中创建的用户文件,管理员可能发现将 PUBLIC 映射到 dbuser 代理用户身份非常高效且足够安全。管理员可以下列 GRANT ACCESS 语句,将所有认证了的用户(PUBLIC)映射到为 dbuser 建立的权限:

GRANT ACCESS TO PUBLIC PROPERTIES USER dbuser;
注: 将 PUBLIC 映射到代理用户身份是为某些被映射的用户设计的,这些用户不创建或不关注 home 目录上的用户文件,诸如在零售 Web 网站上访问 GBase 8s 数据库的顾客。如果您想要将像 dbuser 这样关注数据库服务器功能的用户映射到代理用户身份, 则推荐以指定的 home 目录分别地映射这些用户,如下例所示:
GRANT ACCESS TO bob PROPERTIES USER dbuser HOME "/home/dbuser/bob";

将在外部认证了的用户映射到 UID-GID 对:

管理员将 bob 映射到代理用户身份,由一个通过运行下列语句启用数据库服务器访问的 UID-GID 对构成:

GRANT ACCESS TO bob PROPERTIES UID 101, GROUP (10011);

因为未指定特定的目录,所以以名称 uid.101 创建 $GBASEDBTDIR/users 之下的目录,且此路径将被用作 home 目录。UID 101 和 GROUP (10011) 是匿名的,因为在各自的 /etc 目录中没有条目指定可访问 GBase 8s 的 UID 和 GID。

抑或,管理员可将 bob 映射到代理用户身份,这是一匿名 UID 和一显式组的综合体,如下例所示:

GRANT ACCESS TO bob PROPERTIES 101, GROUP (ifx_user);

由于 ifx_user 组包括成员 billeileen,所以该组不是匿名的。

将在外部认证了的用户映射到有服务器管理权限的代理用户身份:

在下列示例中,管理员将 DBSA 权限授予 bob

GRANT ACCESS TO bob PROPERTIES USER fred, GROUP (ifx_user), AUTHORIZATION (dbsa);

将 UID 3000(fred)和 GID 3000(users)、200(staff)和额外的组 1000(ifx_user)分配给用户 bob。通过以不同的权限(DBSSO、AAO 或 BARGROUP)取代 dbsa,授予 bob 的管理角色可能不同。如果在 onconfig 文件中将 USERMAPPING 参数设置为 BASIC,那么通过此语句可能不将 DBSA 权限授予 bob。如果 USERMAPPING 设置为 OFF,那么 bob 可能根本不能连接到该数据库服务器。

示例

下列 GRANT 语句是有效的 ACCESS TO PROPERTIES 子句的示例,使用假定的值。这些示例未表现 ACCESS TO PROPERTIES 子句的完整语法和可能的语义。

1 使用此路径不超过 16 次