Oracle数据库权限学习--表或者是视图不存在


摘要

本文写于: 12.10 01:00 巴西踢的太烂了
帮同事看一下补丁执行报错的问题.
问题原因很简单. user_all_table能够后去本用户权限
下所有架构表空间下面的表.
如果A架构下没有一个表, 但是同一个数据库instanceID下面有一个B架构下有这个表
并且A用户具有 dba 权限, 那么在A用户下查询是否存在这个表, 会查询出是来 如果再去再A用户下处理这张表, 就会报错.
select count(1) from user_all_Tables where Table_Name = 'TBTMPxxx'

问题原因以及思考

其实问题非常简单, 最简单的处理方法是
不应该在执行的SQL内部内使用 user_all_tables的语法.
因为这个会放大用户查询的范围, 这个问题其实十三年前就开始说了,
但是研发总是一直很自信的用. 这个问题屡禁不止.
我也感觉比较奇怪,为啥我这边没发现, 怀疑是不是用户权限有关系. 其实简单一查询的确能够发现存在较多的风险.

问题深入发掘

12.10 01:10 其实发现自己已经把问题原因弄错了..
但是这个文章还是想继续写一下. 第一步: 分析Oracle用户的权限:
# 查看用户具有的角色
select * from dba_role_privs where grantee ='CLOUD2099';
# 查看用户具有的权限
select * from dba_sys_privs where grantee ='CLOUD2099'; # 注意之前为了简单, 备份恢复的测试使用了dba的权限
# 这样会导致出现上一节分析的出现的问题原因. 用户一般具备如下权限就可以了:
CREATE TABLESPACE
CREATE ANY TABLE
ALTER ROLLBACK SEGMENT
CREATE RULE
CREATE ANY SEQUENCE
CREATE SESSION
UNLIMITED TABLESPACE
CREATE ANY VIEW
DROP TABLESPACE
CREATE ROLLBACK SEGMENT
DROP ROLLBACK SEGMENT
CREATE TRIGGER 生产环境非常不建议 有DBA权限

其他不应该有的权限

今天晚上做了一个实验, 发现如果具备:
EXP_FULL_DATABASE
角色的用户, 也会出现一定的权限扩大化.
当然风险较小(极难利用) 具备这个角色的用户不仅仅可以备份恢复自己的数据库
还可以将整个数据库实例下所有的数据库实例进行备份恢复
可能会存在权限扩大化的风险. 如果是等保或者是高安全性的场景, 建议也不要赋予这个权限.

其他数据库的举一反三

1. 生产必须严格杜绝DBA用户权限的情况. 任何数据库都不行.
2. 备份恢复也建议最小化权限原则,避免权限失真.
3. 研发必须严格遵守属地属主原则,不要任意过大表或者是视图范围.
4. 业务表名一定要有业务含义,不要加太多TMP标识..

Oracle数据库权限的简单学习与扩展

12.10 01:25 巴西1:0 克罗地亚

1、查看所有用户
select * from dba_user;
select * from all_users;
select * from user_users; 2、查看用户系统权限
select * from dba_sys_privs;
select * from all_sys_privs;
select * from user_sys_privs; 3、查看用户对象权限
select * from dba_tab_privs;
select * from all_tab_privs;
select * from user_tab_privs; 4、查看所有角色
select * from dba_roles; 5、查看用户所拥有的角色
select * from dba_role_privs;
select * from user_role_privs; 6、查看当前用户的缺省表空间
select username,default_tablespace from user_users; 7、查看某个角色的具体权限
如 grant connect,resource,create session,create view to TEST; 8、查看RESOURCE具有那些权限
SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE='RESOURCE
Study From https://www.cnblogs.com/huazhixu/p/15788803.html

Oracle数据库权限学习--表或者是视图不存在的更多相关文章

  1. Oracle数据库对象(表空间/同义词/序列/视图/索引)

    数据库对象 Oracle数据库对象: 数据库对象是数据库的组成部分,常常用 CREATE 命令进行创建,可以使用 ALTER 命令修改,用 DROP 执行删除操作. 种类: (1)表空间:所有的数据对 ...

  2. Oracle数据库之创建表空间与用户

    Oracle数据库之创建表空间与用户 一.创建表空间 基本语法表述: CREATE TABLESPACE tablespace_name [DATAFILE datafile_spec1 [,data ...

  3. oracle 数据库下所有表结构、数据量及缺失值统计

    表结构 SELECT t1.TABLE_NAME, t1.COLUMN_NAME, t1.DATA_TYPE || '(' || t1.DATA_LENGTH || ')', t2.COMMENTS ...

  4. 实例讲解Oracle数据库设置默认表空间问题

    实例讲解Oracle数据库设置默认表空间问题   实例讲解Oracle数据库设置默认表空间问题,阅读实例讲解Oracle数据库设置默认表空间问题,DBA们经常会遇到一个这样令人头疼的问题:不知道谁在O ...

  5. ORACLE主要的系统表和系统视图

    ORACLE主要的系统表和系统视图 1.系统表 ORACLE数据库的系统参数都存储在数据库中,可以通过SQLPLUS,以用户SYS进行查询.几个重要的表或者视图如下: v$controlfile:控制 ...

  6. oracle数据库误删的表以及表中记录的恢复

    oracle数据库误删的表以及表中记录的恢复 一.表的恢复 对误删的表,只要没有使用PURGE永久删除选项,那么从flash back区恢复回来希望是挺大的.一般步骤有: --1.从flash bac ...

  7. Oracle数据库--解决单张表中数据量巨大(大数据、数据量上百万级别,后查询,更新数据等耗时剧增)

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/QQ578473688/article/details/54561397 思路1:采用备份表 备份表中 ...

  8. PowerDesigner生成Oracle数据库时,表名会带引号问题

    使用PowerDesigner生成数据库建表SQL脚本时,尤其是Oracle数据库时,表名一般会带引号.其实加引号是PL/SQL的规范,数据库会严格按照""中的名称建表,如果没有& ...

  9. Oracle数据库之创建表结构

    Oracle数据库之创建表结构 主键与外键 主键:关系型数据库中的一条记录中有若干个属性,若其中的某一个属性组(可以是一个属性,也可以是多个)能唯一标识一条记录,那么该属性组就是主键. 外键:关系型数 ...

  10. Oracle 数据库中查看表空间的2种方法

    在Oracle数据库中查看表空间使用状况是我们在实际应用中经常涉及到的,以下的内容就就是对Oracle 数据库中查看表空间使用状况时所要用到的SQL的描述,希望你能从中获得自己想要的东西. Oracl ...

随机推荐

  1. 如何正确使用Python临时文件

    摘要:临时文件通常用来保存无法保存在内存中的数据,或者传递给必须从文件读取的外部程序.一般我们会在/tmp目录下生成唯一的文件名,但是安全的创建临时文件并不是那么简单,需要遵守许多规则. 1.前言 临 ...

  2. 云小课 | 一个三分钟快速定制OCR应用的神器,要不?

    摘要:ModelArts Pro提供了文字识别套件,基于丰富的文字识别算法和行业知识积累,帮助客户快速构建满足不同业务场景需求的文字识别服务.三分钟即可快速定制OCR服务,实现多种版式图像的文字信息结 ...

  3. 解读分布式调度平台Airflow在华为云MRS中的实践

    摘要:Airflow是一个使用Python语言编写的分布式调度平台,通过DAG(Directed acyclic graph 有向无环图)来管理任务. 本文分享自华为云社区<分布式调度平台Air ...

  4. 华为云数据库GaussDB(for Influx)揭秘第二期:解密GaussDB(for Influx)的数据压缩

    摘要:物联网设备产生的数据是典型的时序数据,而时序数据库是存储时序数据的专业数据库系统,因此数据压缩对时序数据库来说是一项必不可少的能力. 本文分享自华为云社区<华为云数据库GaussDB(fo ...

  5. 火山引擎云原生数据仓库 ByteHouse 技术白皮书 V1.0 (Ⅳ)

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 近日,<火山引擎云原生数据仓库 ByteHouse 技术白皮书>正式发布.白皮书简述了 ByteHou ...

  6. Profile Config 多环境不同配置

    应用场景如:我们可以在开发.测试环境中,启用 Swagger,在生产环境中不启用 package com.vipsoft.web.boot.config; import springfox.docum ...

  7. 【PS算法理论探讨三】 Photoshop中图层样式之 颜色叠加/渐变叠加/图案叠加 算法原理初探讨。

    这三个表面上看上去很简单,我们就先描述简单的部分. 颜色叠加:这个和编辑菜单下的填充 颜色 基本是一个意思,相当于在原有的图层上部添加了一个纯实色的虚拟图层,选项里的不透明度和混合模式和普通的概念是一 ...

  8. Cpp 值的种类划分

    本博文会介绍移动语义的形式术语和规则.并且会正式的介绍值的类别,如 lvalue.rvalue.prvalue和 xvalue,并讨论了在绑定对象引用时的作用.也会讨论移动语义不会自动传递的细节,以及 ...

  9. #2028:Lowest Common Multiple Plus(n个数的最小公倍数)

    Problem Description 求n个数的最小公倍数. Input 输入包含多个测试实例,每个测试实例的开始是一个正整数n,然后是n个正整数. Output 为每组测试数据输出它们的最小公倍数 ...

  10. 2020年第十一届蓝桥杯省赛 第一场(7月5日)B组个人题解

    PDF文件下载: https://files.cnblogs.com/files/Angel-Demon/CB.zip 试题 A: 跑步训练 [问题描述] 小明要做一个跑步训练. 初始时,小明充满体力 ...