【问题标题】:DB2 - Read Priviliges cannot readDB2 - 读取权限无法读取
【发布时间】:2015-07-30 15:15:16
【问题描述】:

我正在尝试使用帐户 (ACCOUNTX) 从某个表 (READTABLE) 中读取数据。此帐户对表 READTABLE 具有读取(选择)权限。我检查了这个:

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

为什么此表会预先添加 ACCOUNTX?还是我的权限检查查询错误?

【问题讨论】:

    标签: sql db2 privileges


    【解决方案1】:

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

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

    显然,您的表 READTABLE 属于不同于 ACCOUNTX 的架构。如果你没有权限读取表,错误会有所不同。

    【讨论】:

      猜你喜欢
      • 2010-12-28
      • 2017-02-12
      • 2012-03-10
      • 1970-01-01
      • 2020-02-16
      • 1970-01-01
      • 2014-07-02
      • 2019-07-06
      • 1970-01-01
      相关资源
      最近更新 更多