1.概述
接到某运营商客户反应遇到奇怪现象,在通过dblink查询一个表报错提示ORA-01031:权限不足,于是在目标库执行赋权命令后,起初授完权限时,能成功查询表,过了一会再次发起查询,又会提示权限不足。
2.分析过程
首先执行授权语句后,通过查询DBA_TAB_PRIVS视图查看发现能查到相关权限的记录。
SQL> grant select on RM.DISTRICT_PORT to ICMS;
SQL> SELECT GRANTEE,OWNER,TABLE_NAME,PRIVILEGE FROM DBA_TAB_PRIVS WHERE GRANTEE = 'ICMS' and TABLE_NAME='DISTRICT_PORT';
GRANT OWNER TABLE_NAME PRIVILEGE
----- ---------- ------------------------------ ----------------------------------------
ICMS RM DISTRICT_PORT SELECT此时验证dblink能成功查到,但是第二次再调用dblink查询发现依然报错,此时从DBA_TAB_PRIVS视图里查不到相关记录,扩大查询范围发现出现类似于回收站中表的代码字段:
SQL> SELECT GRANTEE,OWNER,TABLE_NAME,PRIVILEGE FROM DBA_TAB_PRIVS WHERE GRANTEE = 'ICMS' and OWNER='RM';
GRANT OWNER TABLE_NAME PRIVILEGE
----- ---------- ------------------------------ ----------------------------------------
ICMS RM BIN$2t44Saj+qzjgU+cJwYcL0w==$0 SELECT
ICMS RM BIN$2t7JAM9xjMbgU+cJwYfqaw==$0 SELECT
ICMS RM BIN$2t8RlZUT/XXgU+cJwYfqUA==$0 SELECT于是查询回收站视图dba_recyclebin,经过筛选,发现相关表在不断被创建然后删除,间隔十分钟执行一次,以下为dba_recyclebin视图中查询到的内容,其中三个代码段正好与权限视图中的相对应:
RM BIN$2t44Saj+qzjgU+cJwYcL0w==$0 DISTRICT_PORT DROP TABLE 2022-03-23:14:45:21 2022-03-23:14:55:51 485314
RM BIN$2t5cXXFG4S7gU+cJwYc0fA==$0 DISTRICT_PORT DROP TABLE 2022-03-23:14:55:51 2022-03-23:15:05:56 485317
RM BIN$2t6AOX7OIcDgU+cJwYc2KA==$0 DISTRICT_PORT DROP TABLE 2022-03-23:15:05:56 2022-03-23:15:15:58 485320
RM BIN$2t6kmlUkVqvgU+cJwYdN1A==$0 DISTRICT_PORT DROP TABLE 2022-03-23:15:15:58 2022-03-23:15:26:08 485323
RM BIN$2t7JAM9xjMbgU+cJwYfqaw==$0 DISTRICT_PORT DROP TABLE 2022-03-23:15:26:08 2022-03-23:15:36:19 485326
RM BIN$2t7tApN4xkTgU+cJwYc3mg==$0 DISTRICT_PORT DROP TABLE 2022-03-23:15:36:19 2022-03-23:15:46:23 485329
RM BIN$2t8RlZUT/XXgU+cJwYfqUA==$0 DISTRICT_PORT DROP TABLE 2022-03-23:15:46:23 2022-03-23:15:56:36 485332
RM BIN$2t82kn0eNtzgU+cJwYdRUw==$0 DISTRICT_PORT DROP TABLE 2022-03-23:15:56:36 2022-03-23:16:06:57 485335
RM BIN$2t9a/TBXci/gU+cJwYdruw==$0 DISTRICT_PORT DROP TABLE 2022-03-23:16:06:57 2022-03-23:16:17:08 485338
RM BIN$2t9//L2qqObgU+cJwYdXCw==$0 DISTRICT_PORT DROP TABLE 2022-03-23:16:17:08 2022-03-23:16:27:29 485341
RM BIN$2t+lQluq5ZfgU+cJwYc/GQ==$0 DISTRICT_PORT DROP TABLE 2022-03-23:16:27:29 2022-03-23:16:37:54 485344
SQL> select owner,object_name,CREATED from dba_objects where object_name='DISTRICT_PORT';
OWNER OBJECT_NAME CREATED
---------- ------------------------------ -------------------
RM DISTRICT_PORT 2022-03-23 16:37:54案件告破!!
3.处理结果
于是向客户反馈情况,排查当前表频繁删除情况是否正常,并提出建议:
(1).在执行查询前可以先赋权
(2).直接赋权select any table权限。
两种方式都可以解决当前问题
最后修改时间:2022-03-23 23:55:21
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




