ORA-31052: Cannot delete ACL with other references
Cause: The requested deletion of an ACL resource cannot proceed. The ACL is in use by other resources.
Action: Remove the resources that are making reference to the ACL in question and try again.
ORA-31052: Cannot delete ACL with other references 详细释义
ORA-31052:是Oracle Database中出现在数据库访问控制列表(ACL)操作后的一个错误,表示要删除的ACL正在受到其他引用,不能删除。
官方解释
此错误属于ORA-31000系列的之一,ORA-31000系列的错误通常指数据库访问控制checkout(ACL)文件相关操作过程中出现的错误,发生这种错误是由于违反了Access Control List(ACL)文件相关的某些限制造成的,如删除ACL文件时,该ACL文件正在非全局空间下被另外引用,这样ACL文件就不能被删除,此时就会出现这个错误。
常见案例
主要是在Payment Card Industry Data Security Standard(PCI DSS)文件安装后发生,在删除PCI_DSS文件时可能会出现ORA-31052:oRACLE不允许删除ACL文件,因为它正在一个局部的空间中被引用。
正常处理方法及步骤
1、只能先释放ACL的所有引用,然后再重新创建ACL,才能删除。
2、首先查询哪些引用ACL文件。可以运行如下查询语句来查找所有引用了ACL文件的空间,找到那些在此ACL文件上进行了操作的空间。
SELECT * FROM DBA_OBJECT_ACLS WHERE ACL_name=’ACL文件名’;
3、释放查询出来的所有引用,可以使用drop_Acl_references这个函数释放所有关于ACL文件的引用。
4、最后可以使用DROP ALL ACL_RILES来删除ACL文件。