【问题标题】:How can i give SECADM to instance owner in DB2?如何将 SECADM 提供给 DB2 中的实例所有者?
【发布时间】:2014-11-18 15:46:10
【问题描述】:

我在 linux 上使用 db2 9.7,我创建了一个用户“db2fee1i”作为实例所有者。我恢复了一个数据库,但即使是 SYSADM 我也只能连接到数据库。 我需要将 DATAACCESS 给另一个用户,然后出现...

("该命令被作为 SQL 语句处理,因为它不是有效的命令行处理器命令。在 SQL 处理期间它返回:SQL0551N "DB2FEE1I" 没有对对象执行操作 "EXECUTE" 所需的授权或特权"NULLID.SQLC2H23".SQLSTATE=42501")

我尝试了一切,但没有解决我的问题,现在我找到了“SECADM”,它可以给我“执行权限”进入数据库,但我不知道该怎么做。 有人可以帮助我吗?!

【问题讨论】:

    标签: database db2


    【解决方案1】:

    原始数据库权限和权限是从备份映像恢复的,因此默认情况下,您的新实例所有者 ID 除了从 PUBLIC 继承的权限之外没有任何特殊权限。

    在恢复数据库之前设置 DB2 注册表变量db2set DB2_RESTORE_GRANT_ADMIN_AUTHORITIES=ON 并重新启动实例。恢复后,执行它的授权ID将被授予SECADMDBADMDATAACCESSACCESSCTRL权限。

    【讨论】:

    • 对不起,它也没有用!用户的名称与旧数据库实例的名称相同...我创建了这个过程 - db2set DB2_RESTORE_GRANT_ADMIN_AUTHORITIES=ON 并且实例已重新启动,但消息再次出现。 :(
    • select * from syscat.dbauth 的输出是什么?
    • db2 "select * from syscat.dbauth" ----- SQL0551N "DB2FEE1I" 没有对对象 "NULLID.SQLC2H23" 执行操作 "EXECUTE" 所需的授权或特权。 SQLSTATE=42501
    • 哪个用户 ID 创建了您正在恢复的数据库?
    • 我恢复了使用 (db2fee1i) 记录的数据库,但我无法进行 SELECT 或列出架构或与恢复的数据库相关的任何内容...
    【解决方案2】:

    它对我有用, 删除数据库。

    db2set DB2_RESTORE_GRANT_ADMIN_AUTHORITIES=ON
    

    然后恢复数据库。

    【讨论】:

      猜你喜欢
      • 2021-08-16
      • 1970-01-01
      • 1970-01-01
      • 2013-11-03
      • 1970-01-01
      • 2018-03-07
      • 2016-12-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多