【发布时间】:2020-07-06 17:03:43
【问题描述】:
我正在尝试撤销对使用 Sysibm 模式获取数据库元数据信息的用户(无论是 testUser 还是 db2instance 用户)的访问权限。如果我运行以下查询
SELECT NAME, COLTYPE, LENGTH FROM SYSIBM.SYSCOLUMNS WHERE TBNAME = 'tableName';
我得到了我在查询中传递的表的信息。可以做些什么来限制对用户的访问?
我跑了
REVOKE ALL ON TABLE SYSIBM.SYSCOLUMNS FROM user;
并收到以下错误:
com.ibm.db2.jcc.am.SqlSyntaxErrorException: An attempt to revoke a privilege, security label, exemption, or role from "USER" was denied because "USER" does not hold this privilege, security label, exemption, or role.. SQLCODE=-556, SQLSTATE=42504
即使使用 db2instance 用户,我也会收到相同的错误消息。但是,select 语句给了我正确的结果。
我相信 Sysibm 是存储所有数据库相关信息的地方。我想限制对它的访问,以便用户无法获取有关我的数据库的元数据。
【问题讨论】:
-
您想通过对用户隐藏目录信息来达到什么目的?默默无闻的安全性几乎没有什么好处。
-
我正在验证我的应用程序处理这种情况的能力。