暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

赋对象权限失效问题处理

原创 云和恩墨 2022-03-23
451

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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论