Go back to the English version of the documentation无法授予用户访问Data Virtualization中虚拟表上视图的权限
无法授予用户访问Data Virtualization中虚拟表上视图的权限
Last updated: 2024年11月26日
名为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 ) 的访问许可权时,才需要此变通方法。