0 / 0
Go back to the English version of the documentation
无法授予用户访问Data Virtualization中虚拟表上视图的权限
Last updated: 2024年11月26日
无法授予用户访问Data Virtualization中虚拟表上视图的权限

名为userB的用户具有Data Virtualization 工程师角色,并根据虚拟表创建了一个视图。 但是,userB 无法授予用户对此视图的访问权。

症状

名为 userA 的用户将创建名为 VIRTUAL_A的虚拟表。 名为 userB 的用户从表 VIRTUAL_A创建名为 VIEW_B 的视图。 访问表VIRTUAL_A的权限授予所有Data Virtualization用户,方法是使用 "管理访问"页面上的 "所 有数据虚拟化用户"选项。

名为 userB 的用户尝试在视图 VIEW_B上授予对 userC 的访问权,但收到类似于以下示例的错误。

Code 500: SQLExecute: {42501} [IBM][CLI Driver][DB2/LINUXX8664]
SQL0551N The statement failed because the authorization ID does not have the required authorization or privilege to perform the operation.
Authorization ID: "USERB". Operation: "GRANT". Object: "USERB.VIEW_B". SQLSTATE=42501

原因

即使 userB 是视图 VIEW_B 的创建者,userB 也不具有表 VIRTUAL_A 上所需的许可权来向用户授予对依赖于 VIRTUAL_A 的视图的访问权。

解决问题

要解决此问题, userA 必须在 SQL 编辑器中输入以下语句,以授予 userB 对表 VIRTUAL_A的访问权。
GRANT SELECT ON TABLE "schema".VIRTUAL_A TO "userB" WITH GRANT OPTION

仅当已使用 所有数据虚拟化用户选项授予用户 (示例中的userB ) 对虚拟表 (示例中的VIRTUAL_A ) 的访问许可权时,才需要此变通方法。

Generative AI search and answer
These answers are generated by a large language model in watsonx.ai based on content from the product documentation. Learn more