DB2 LUW 12.1(AIX)删除审计政策遇依赖问题求助
当尝试删除名为SCHEMAPOLICY的审计政策时,执行命令:
db2 drop audit policy SCHEMAPOLICY
收到错误提示:
DB21034E The command was processed as an SQL statement because it was not a valid Command Line Processor command. During SQL processing it returned: SQL0478N The statement failed because one or more dependencies exist on the target object. Target object type: "AUDIT POLICY". Name of an object that is dependent on the target object: "CURRENT SERVER". Type of object that is dependent on the target object: "DATABASE". SQLSTATE=42893
通过查询SYSCAT.AUDITUSE视图确认该政策被CURRENT SERVER(数据库实例)绑定:
SELECT substr(AUDITPOLICYNAME,1,12) as "Policy ", OBJECTTYPE as "Obj Type", SUBOBJECTTYPE as "Sub Object Type", substr(OBJECTSCHEMA,1, 10) as "Schema", substr(OBJECTNAME,1,19) as "Object Name" FROM SYSCAT.AUDITUSE
返回结果:
Policy Obj Type Sub Object Type Schema Object Name
SCHEMAPOLICY - CURRENT SERVER **
按照以下步骤解除依赖并删除审计政策:
步骤1:解除审计政策与数据库的绑定
执行ALTER DATABASE命令移除数据库级别的审计政策绑定,需具备DBADM或SECADM权限:ALTER DATABASE DROP AUDIT POLICY SCHEMAPOLICY步骤2:验证绑定已解除
再次执行SYSCAT.AUDITUSE查询,确认结果中不再存在SCHEMAPOLICY与CURRENT SERVER的关联记录。步骤3:删除审计政策
重新执行删除命令,此时即可成功删除:db2 drop audit policy SCHEMAPOLICY
内容的提问来源于stack exchange,提问作者Kevin Fries

