使用 GRANT 语句的 ACCESS TO PROPERTIES 子句来将用户映射到访问 GBase 8s 资源所需要的代理用户属性。
仅 DBSA 可外部地将认证的用户映射到有效的代理用户属性。如果 USERMAPPING 配置参数设置为启用支持被映射的用户,则 DBSA 发出 GRANT ACCESS TO PROPERTIES 语句来将用户映射到与适当的授权级别对应的属性。
被映射的用户可以代理用户属性连接到 GBase 8s ,如果他们以可插拔的认证模块(PAM)或单点登录(SSO)认证的话。
被映射的用户可以代理用户属性连接到 GBase 8s ,如果他们以可插拔的认证模块(PAM)认证的话。
元素 | 描述 | 限制 | 语法 |
---|---|---|---|
directory | 存储用户文件的目录的路径名称。 | 长度不超过 255 字节,且必须符合您的操作系统的规则。directory 还必须:
|
用引号括起的字符串 |
group_ID | 您想要将 user 映射到的组标识符编号。group_id 值的列表或您指定的值必须括在括号中。 | group_ID 不可为:
组 ID 必须在 /etc/gbasedbt/allowed.surrogates 文件中存在。 |
文字的数值 |
group_name | 现有的操作系统组的名称,该组有您想要映射 user 到的许可。group_name 值的列表必须括在括号中。 | 长度不可超过 32 字节。
组名必须在 /etc/gbasedbt/allowed.surrogates 文件中存在。 |
所有者名称 |
privilege | 分配给 user 的管理权限。有效值如下:
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;
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 组包括成员 bill 和 eileen,所以该组不是匿名的。
将在外部认证了的用户映射到有服务器管理权限的代理用户身份:
在下列示例中,管理员将 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 子句的完整语法和可能的语义。