CALL DBMS_DDL.CREATE_WRAPPED ('CREATE OR REPLACE VIEW TEST_OBFUSCATED AS SELECT TABNAME FROM SYSCAT.TABLES WHERE TABSCHEMA LIKE ''SYS%''');
SELECT TEXT
FROM SYSCAT.VIEWS
WHERE VIEWSCHEMA = CURRENT SCHEMA AND VIEWNAME = 'TEST_OBFUSCATED';
如果您希望用户能够从视图中进行选择,则他们必须能够获得该视图的定义。 您可以将针对视图的查询 Package 在一个返回集合的用户定义函数中,该函数具有其创建者(假定是DBA)的所有权限,并仅授予其他用户对该函数的EXECUTE权限。然后,您就可以撤消用户读取您不希望他们读取的系统目录表的权限。 Details in the manual。
2条答案
按热度按时间ru9i0ody1#
请看Db2 Obfuscation工具。
| 文本|
| - -|
| 创建或替换视图测试废弃 Package SQL 11014长字符串无意义|
您可以按相同方式将此视图用作任何其他视图,但其文本并非对所有人都可见。
此外,您可以使用这个“奇怪的”模糊语句从头开始创建视图。有一个标量函数可以帮助您获得这个模糊语句,而不必先创建它。
如果有人仍然需要查看真实的视图文本,可以在
SYSIBM.SYSVIEWS
表上使用Row and column access control (RCAC)。nc1teljy2#
如果您希望用户能够从视图中进行选择,则他们必须能够获得该视图的定义。
您可以将针对视图的查询 Package 在一个返回集合的用户定义函数中,该函数具有其创建者(假定是DBA)的所有权限,并仅授予其他用户对该函数的
EXECUTE
权限。然后,您就可以撤消用户读取您不希望他们读取的系统目录表的权限。Details in the manual。