【问题标题】:User does not have authority/permission despite being db2 dba admin user尽管是 db2 dba admin 用户,但用户没有权限/权限
【发布时间】:2022-01-21 08:56:48
【问题描述】:

在 Linux/x86-64 上的 Db2 v11.1 Enterprise Edition 上,我检查了当前连接用户的权限:

select
   granteetype,
   dbadmauth,
   securityadmauth,
   dataaccessauth,
   accessctrlauth
from syscat.dbauth
where grantee = 'ADM1'

从输出中我看到这个用户是数据库上的超级用户:

GRANTEETYPE DBADMAUTH SECURITYADMAUTH DATAACCESSAUTH ACCESSCTRLAUTH
----------- --------- --------------- -------------- --------------
U           Y         Y               Y              Y

当我尝试执行以下三项任务之一时,我总是遇到权限错误。

db2 "select * from sysibmadm.snaptab_reorg"

SQL1092N 请求的命令或操作失败,因为用户 ID 无权执行请求的命令或 手术。用户 ID:“ADM1”。

db2 "CREATE REGULAR TABLESPACE tbs1"

SQL0552N “ADM1”没有执行权限 操作“创建表空间”。 SQLSTATE=42502

db2 "CREATE bufferpool bp1"

SQL0552N “ADM1”没有执行操作的特权 “创建缓冲池”。 SQLSTATE=42502

为什么“ADM1”用户会出现权限错误?

问候

【问题讨论】:

  • 数据库是否已恢复,并且以前位于不同的 db2-instance 中? (检查 syscat.dbauth 中的不同授权人)。您的帐户是 linux 中配置的 SYSADM_GROUP 的成员吗?数据库是否使用“限制性”选项创建?
  • 用户不在命令所需的 SYSxxx 组之一中。谢谢。

标签: db2 privileges db2-luw


【解决方案1】:

我检查了文档 create tablespacecreate bufferpoolsnaptab_org table,它们都需要 SYSxxx 权限之一,但用户“ADM1”没有 SYSxxx 权限之一。

select * from table
(sysproc.auth_list_authorities_for_authid ('ADM1', 'U')) as t
where authority like 'SYS%'

AUTHORITY D_USER D_GROUP D_PUBLIC ROLE_USER ROLE_GROUP ROLE_PUBLIC D_ROLE
--------- ------ ------- -------- --------- ---------- ----------- ------
SYSADM    *      N       *        *         *          *           *
SYSCTRL   *      N       *        *         *          *           *
SYSMAINT  *      N       *        *         *          *           *
SYSMON    *      N       *        *         *          *           *

附:我错误地认为 DBA 权限足以执行这些操作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-13
    • 1970-01-01
    • 2022-01-02
    • 2023-03-13
    • 2015-02-21
    • 2012-04-17
    • 2021-02-28
    • 1970-01-01
    相关资源
    最近更新 更多