DB2 - 读取权限无法读取

DB2 - Read Priviliges cannot read

我正在尝试使用帐户 (ACCOUNTX) 从某个 table (READTABLE) 中读取数据。此帐户对 table、READTABLE 具有读取(select)权限。我使用以下方法检查过:

from syscat.tabauth
where grantee = CURRENT USER and (SELECTAUTH = \'Y\' OR SELECTAUTH = \'G\')

除其他外,这返回了 READTABLE。

但是,执行我有 FROM READTABLE 的语句时出现以下错误:

[DB2/AIX64] SQL0204N "ACCOUNTX.READTABLE is an undefined name. SQLSTATE=42704

为什么这个 table 会在其前面添加 ACCOUNTX?还是我的权限检查查询有误?

DB2 中的每个 table 都属于一个模式。因此,完全限定的 table 名称由模式名称和 table 名称组成,由点分隔。

如果在引用 table 时您没有使用模式名称明确限定它,DB2 将采用您会话中设置的 CURRENT SCHEMA 变量的值。默认情况下 CURRENT SCHEMA 使用您的授权 ID(用户名)的值进行初始化。

显然,您的 table READTABLE 属于不同于 ACCOUNTX 的模式。如果您没有权限读取 table,错误将有所不同。