当前位置:  数据库>oracle

Oracle用户访问权限与PUBLIC角色的关系

    来源: 互联网  发布时间:2017-04-27

    本文导语: 在数据库中创建了一个用户,这是给第三方系统用的。客户强调,这个用户只能访问到有限的表,在我们规定的范围内的表。 于是,我创建 一个用户,如user_third ,只给了connect 角色,用grant select on table 有限授权。 为此,我写...

在数据库中创建了一个用户,这是给第三方系统用的。客户强调,这个用户只能访问到有限的表,在我们规定的范围内的表。

于是,我创建 一个用户,如user_third ,只给了connect 角色,用grant select on table 有限授权。

为此,我写了一文,请见 如何实现 Oracle中用户 B只能访问用户 A的视图 (

用户访问密码交给客户后,又发现一个新问题,它居然能访问其他用户的表。

我核实了一下,发现它确实能访问别的用户的表。如数据 库中TT 用户下的表。

这是怎么回事?

您从我列出的标题中,一定猜到了吧。这事一定 public 角色有关。

在 Oracle TimeTen 创建时,它创建的表会自动将它的查询权限授予给 public 角色。

而数据库中任何一个用户都默认拥有 public 角色。

因此,问题就在 public 角色的权限上。我们只需要查询 public 角色授予了哪些权限,再撤销这些权限即可。

通过执行下列 SQL ,我们能判断出哪些权限授予给了 public 角色。

SELECT GRANTOR,OWNER,TABLE_NAME,PRIVILEGE FROM DBA_TAB_PRIVS WHERE GRANTEE='PUBLIC';

部分结果如下:

GRANTOR                         OWNER                           TABLE_NAME                      PRIVILEGE

------------------------------ ----------------------------------------

××   GTJA                            TT_03_24577_L                   UPDATE

GTJA                            GTJA                            TT_03_24577_L                   SELECT

GTJA                            GTJA                            TT_03_24577_L                   INSERT

GTJA                            GTJA                            TT_03_24577_L                   DELETE

TT 表的查询更新删除插入权限都授予给了public 角色。这个很恐怖,对数据库系统的安全是有破坏的。

基于此,我们可以判定任何一个数据库用户都可以对这些表做查询更新删除插入操作。

怎么解决这个权限问题,是很简单的。但一定要保证不能影响到TT 的正常使用。这是个权衡的问题,可用性和安全两个角度的权衡。如果TT 不正常了,就考虑将其迁移到其他库上去,最好是独立的仅供TT 使用的库。

具体解决方法如下:

1 、从Oracle TimeTen 上解决,在创建cachegroup 时,将授予公共权限的选项除掉。当然这么做的前提是要保证TT 能够正常使用。

2 、从数据库中将这些权限从public 角色撤销。同样前提是TT 在这些权限撤销后能正常工作。

撤销方法示例如下:

revoke select on   TT_03_24577_L from public;

总结一下,这个实例说明了Oracle 的权限真够复杂的,日常管理时一定要留意一下public 角色的权限。

更多Oracle相关信息见 专题页面


    
 
 

您可能感兴趣的文章:

  • oracle 视图权限 oracle 创建视图权限不足
  • linux下安装oracle,出现没有权限的报警,怎么解决?
  • Oracle 权限管理入门
  • 求救:HPUNIX下的ORACLE7执行select * from tablename提示权限不足!!
  • Linux下安装Oracle 10G提示“bad interpreter: 权限不够”的解决
  • Oracle创建用户权限的过程
  • oracle9i在linux9上安装的权限问题!在线等候!
  • Oracle 10g创建表空间和用户并指定权限
  • Oracle 低权限数据库账户得到 OS 访问权限 提权利用
  • 一个关于JAVA操作oracle数据库时UPDATE权限的问题
  • Oracle 10g各个帐号的访问权限、登录路径、监控状态命令查询等等
  • Linux系统中Oracle数据库的用户权限
  • Oracle内置角色connect与resource的权限
  • Oracle删除当前用户下所有表的方法适用于有或没有删除权限
  • oracle用户权限管理使用详解
  • 实现Oracle数据库的存储过程中拥有“role”权限
  • 巧用Oracle系统账户默认口令来提升权限
  • oracle 9i Linux 下安装时出现 无法建立inventory目录,你可能没有相应权限,请高手帮忙,100分,在线等!
  • 入侵Oracle服务器进一步获取权限
  • Oracle 用户权限管理方法
  • Oracle 8x监控sysdba角色用户登陆情况
  • Oracle数据库中的特权和角色理解
  • 账户方案系统角色多管齐下保障Oracle的安全
  • Oracle新建用户、角色,授权,建表空间的sql语句
  • Oracle10g 预定义主要角色
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • oracle 和 jdk 的关系 ?
  • Oracle中的Connect/session和process的区别及关系介绍
  • Oracle中临时文件File#和Db_files关系
  • Oracle索引存储关系到数据库的运行效率
  • 深入探讨:oracle中方案的概念以及方案与数据库的关系
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle EBS R12 支持 Oracle Database 11g
  • Oracle 10g和Oracle 11g网格技术介绍
  • SCO unix下安装oracle,但没有光盘,请大家推荐一个oracle下载站点(unix版本的)。谢谢!!!!
  • oracle中如何把表中具有相同值列的多行数据合并成一行
  • 请问大家用oracle数据库, 用import oracle.*;下的东西么? 还是用标准库?
  • Oracle 数据库(oracle Database)性能调优技术详解
  • Linux /$ORACLE_HOME $ORACLE_HOME
  • ORACLE日期相关操作
  • Linux系统下Oracle的启动与Oracle监听的启动
  • ORACLE数据库常用字段数据类型介绍
  • 请问在solaris下安装ORACLE,用root用户和用oracle用户安装有什么区别么?
  • Oracle 12c的九大最新技术特性介绍
  • 网间Oracle的连接,远程连接Oracle服务器??


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,