精华内容
下载资源
问答
  • 一个客户问到我,oracle的connect的角色的权限非常大吗?为什么我新建了一个用户,赋予了connect的权限,但是却有权限查询和修改部分核心用户下的表? 这也太不安全了吧? 首先,可以肯定正常的connect角色的权限是...

    一个客户问到我,oracle的connect的角色的权限非常大吗?为什么我新建了一个用户,赋予了connect的权限,但是却有权限查询和修改部分核心用户下的表?
    这也太不安全了吧?
    首先,可以肯定正常的connect角色的权限是非常小的,只有连接登录数据库的权限,但是不排除有人给connect角色赋予了其它的角色或者权限,让他使用下面的sql语句进行查询:
    1.查看connect角色拥有的对象权限
    select * from dba_tab_privs where grantee='CONNECT';


    2.查看connect角色拥有的系统权限
    select * from dba_sys_privs where grantee='CONNECT';


    3.查看connect角色被赋予的其它角色
    select * from dba_role_privs where grantee='CONNECT';


    经过排查发现这些权限都是正确的,并没有赋予其它额外的权限。
    那么很容易就又想到,可能是public用户权限过大导致的问题。
    public用户在oracle中是一个比较特殊的用户,他是一个公共用户,所有的其它用户都会继承public用户的权限。
    示例:


    在suq用户下创建obj表:
    create table obj as select * from dba_objects;
    新创建一个brent用户,只赋予connect权限:
    create user brent identified by brent;
    grant connect to brent;
    这个时候brent用户肯定是没有权限读取suq.obj的,但是如果你将读取的权限赋予了public,那么其它用户就拥有了读取的权限:
    grant select on suq.obj to public;


    特别的如果为了方便,还可以创建一个public同义词。

    总结:
    因此特别需要注意public用户的使用,不恰当的public权限会导致权限扩散。


     

    展开全文
  • http://blog.csdn.net/guoyjoe/article/details/8665901一、PUBLIC权限PUBLIC角色隐式授予每位用户。只要为PUBLIC授予任何权限,相应的权限实际上就会授予可以连接到数据库的每个人,创建的每个账户都有权访问这些...

    http://blog.csdn.net/guoyjoe/article/details/8665901

    一、PUBLIC权限

    PUBLIC角色隐式授予每位用户。只要为PUBLIC授予任何权限,相应的权限实际上就会授予可以连接到数据库的每个人,创建的每个账户都有权访问这些权限。默认方式下,PUBLIC用户拥有大量权限。

    gyj@OCM> select count(*) from dba_tab_privs where grantee='PUBLIC';

    COUNT(*)

    ----------

    28164

    gyj@OCM> select table_name from dba_tab_privs where grantee='PUBLIC' and privilege='EXECUTE' and table_name like 'UTL%';

    TABLE_NAME

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

    UTL_RAW

    UTL_IDENT

    UTL_TCP

    UTL_HTTP

    UTL_FILE

    UTL_INADDR

    UTL_SMTP

    UTL_URL

    UTL_ENCODE

    UTL_GDK

    UTL_COMPRESS

    UTL_I18N

    UTL_LMS

    UTL_NLA_ARRAY_DBL

    UTL_NLA_ARRAY_FLT

    UTL_NLA_ARRAY_INT

    UTL_NLA

    UTL_REF

    UTL_COLL

    UTL_MATCH

    UTL_BINARYINPUTSTREAM

    UTL_BINARYOUTPUTSTREAM

    UTL_CHARACTERINPUTSTREAM

    UTL_CHARACTEROUTPUTSTREAM

    24 rows selected.

    虽然应用软件可以为PUBLIC用户授予执行UTL包的权限,但是我们应当取消PUBLIC用户的这个权限。执行如下操作就可以取消该权限:

    gyj@OCM> conn / as sysdba

    Connected.

    sys@OCM> revoke execute on utl_file from public;

    Revoke succeeded.

    参考。。。。。

    展开全文
  • Oracle TimeTen 创建时,它创建的表会自动将它的查询权限授予给 public 角色。 而数据库中任何一个用户都默认拥有 public 角色。 因此,问题就在 public 角色的权限上。我们只需要查询 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 时,将授予公共权限的选项除掉。当然这么做的前提是要保证 能够正常使用。

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

    撤销方法示例如下:

    revoke select on   TT_03_24577_L from public;
    

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

    展开全文
  • oracle public作用

    千次阅读 2011-03-29 14:47:00
    如果某个权限赋于了public,那么所以数据库的用户都可以有这个权限(当然有些用户可能连connect的权限都可以没有)。 比如把一个对象t1给所有用户有select 权限 grant select on user1.t1 to public...

    public不是角色,你可以理解为所有数据库用户的集合。
    如果某个权限赋于了public,那么所以数据库的用户都可以有这个权限(当然有些用户可能连connect的权限都可以没有)。
    比如把一个对象t1给所有用户有select 权限
    grant select on user1.t1 to public;

    grant plusttrace to public
    create public synonym t1 for t1;
    那么所有的public用户都可以访问该表t1

    再比如说
    grant dba to public;
    那么所有的用户都有dba权限了

    看下面的例子
    bash-2.05a$ sqlplus "/as sysdbA"

    SQL*Plus: Release 9.2.0.4.0 - Production on Tue Jan 18 12:08:50 2005

    Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.


    Connected to:
    Oracle9i Enterprise Edition Release 9.2.0.4.0 - 64bit Production
    With the Partitioning and Real Application Clusters options
    JServer Release 9.2.0.4.0 - Production

    SQL>
    SQL> grant dba to public;
    授权成功。

    SQL> create user fang identified by fang default tablespace users;

    用户已创建

    SQL> conn fang/fang
    已连接。
    SQL> create table t1 (a int);

    表已创建。
    SQL> conn /as sysdba
    已连接。
    SQL> revoke dba from public;

    撤销成功。

    SQL> conn fang/fang
    ERROR:
    ORA-01045: user FANG lacks CREATE SESSION privilege; logon denied

    展开全文
  • oracle public role

    2011-03-15 15:52:00
    PUBLIC The sql.bsq script, which is run when a database is created , creates the public role: create role public /Any privilege granted to public automatically becomes a privilege for ...
  • oracle设置public角色执行权限 参考配置操作: 以DBA身份登录sqlplus,执行: select table_name from dba_tab_privs where grantee='PUBLIC' and privilege='EXECUTE' and table_name in ('UTL_FILE','UTL_TCP','...
  • 如果某个权限赋于了public,那么所以数据库的用户都可以有这个权限(当然有些用户可能连connect的权限都可以没有)。比如把一个对象t1给所有用户有select 权限grant select on user1.t1 to public;create public ...
  • 权限下还有一个publicpublic是数据库中所有用户的一个总称也算是集合吧统一的给用户某种权限或者多种权限使用户默认的拥有某种权限或者多种权限 例 CONN /AS SYSDBA GRANT CREATE SESSION TO PUBLIC; CREATE
  • oracle 权限

    千次阅读 2013-11-22 12:08:17
    Oracle权限 一、概述 这一部分我们主要看看Oracle如何管理权限和角色,权限和角色的区别在哪里。 当刚刚建立用户时,用户没有任何权限,也不能执行任何操作。如果要执行某种特定的数据库操作,则必须为其...
  • Oracle 建议撤消 PUBLIC 对功能强大的程序包的 EXECUTE 权限   OEM提示:Oracle 建议撤消 PUBLIC 对功能强大的程序包的 EXECUTE 权限 程序包­: DBMS_RANDOM­ UTL_HTTP­ UTL_SMTP­ UTL_...
  • ORACLE用户权限管理

    千次阅读 2014-12-26 00:25:49
    参考整理自:http://docs.oracle.com/cd/B19306_01/network.102/b14266/admusers.htm#i1006856 只挑干货讲!!! 一 用户管理 1、创建用户 create user dylan identified by 123 default tablespace users --指定表...
  • oracle 用户权限解释

    千次阅读 2016-07-14 15:43:01
    --------------------- ...|权限定义 解释 ...--------------------- ...|一级权限| 为其他...|二级权限oracle内部文件管理级权限 |三级权限| 会话,角色,用
  • Oracle管理权限和角色

    千次阅读 2015-11-26 13:05:08
    oracle管理权限和角色 基本介绍  当刚刚建立用户时,用户没有任何权限,也不能执行任何操作。如果要执行某种特定的数据库操作,则必需为其授予系统的权限;如果用户要访问其它方案的对象,则必需为其授予对象的...
  • oracle中关于public synonym的权限问题

    千次阅读 2012-01-05 11:50:46
    SQL如果用户的等级不够建立public同义词,可以在system下授权:grant create any synonym to scott;grant create public synonym to scott;取消授权:revoke create any synoym from scott;revoke create public ...
  • Oracle 系统权限分类

    千次阅读 2018-08-20 15:17:28
    群集权限 权限 作用 CREATE CLUSTER 在自己的方案中创建、更改和删除群集 CREATE ANY CLUSTER 在任何方案中创建群集 ALTER ANY CLUSTER ...
  • Oracle 系统权限详细列表

    千次阅读 2017-10-18 15:54:44
    Oracle 系统权限详细列表  alter any cluster 修改任意簇的权限  alter any index 修改任意索引的权限  alter any role 修改任意角色的权限  alter any sequence 修改任意序列的权限  alter any snapshot ...
  • Oracle索引 权限

    千次阅读 2014-07-14 15:30:21
    Oracle索引、权限 管理索引-原理介绍 介绍 索引是用于加速数据存取的数据对象。合理的使用索引可以大大降低i/o次数,从而提高数据访问性能。索引有很多种我们主要介绍常用的几种: 为什么添加了索引后,会加快...
  • ORACLE 用户权限管理

    2019-04-07 21:46:02
    ORACLE 用户权限管理 开发工具与关键技术:oracle 11g Oracle sql*plus 与 PLSQL Developer 作者:清晨 撰写时间:2019年04月07日 创建新的用户只能是oracle的DBA管理者的事。 语句:Create user TestUser ...
  • OEM提示:Oracle 建议撤消 PUBLIC 对功能强大的程序包的 EXECUTE 权限 程序包­: DBMS_RANDOM­ UTL_HTTP­ UTL_SMTP­ UTL_TCP­ [oracle@db ~]$ sqlplus / as sysdba SQL*Plus: Release 10.2.0.4.0 ...
  • 1.查询Oracle所有系统权限 select * from system_privilege_map 2.查询Oracle所有对象权限 select * from table_privilege_map 3.将'授予系统权限'这个权限给某用户--当然一般采用 dba 给其他用户授予“其他权限”...
  • oracle权限

    2007-12-09 15:57:00
    Oracle中,根据系统管理方式不同,将权限分为系统权限与实体权限两类。系统权限是指是否被授权用户可以连接到数据库上,在数据库中可以进行哪些系统操作。而实体权限是指用户对具体的模式实体(schema)所拥有的权限...
  • Oracle目录权限

    2017-07-10 21:26:00
    GRANT read,write ON DIRECTORY dir_dump TO public; 转载于:https://www.cnblogs.com/maweiwei/p/7147776.html
  • oracle权限

    千次阅读 2012-03-30 17:11:22
    一、系统权限:  授予系统权限  要想授予其他用户或者角色系统权限,需要满足下列条件之一:  1、具有grant any privilege权限  2、用户被授予权限时带有admin option选项  grant system_privilege to ...
  • oracle 系统权限

    千次阅读 2009-07-29 23:36:00
    DBA_SYS_PRIVS授予给所有用户和角色的系统权限USER_SYS_PRIVS授予给当前用户的系统权限ROLE_SYS_PRIVS此视图包含了授予给角色的系统权限的信息。它提供的只是该用户可以访问的角色的信息SESSION_PRIVS当前会话可以...
  • Oracle——权限与角色

    2018-06-01 10:45:28
    每个oracle用户都有一个名字和口令,并拥有一些由其创建的表、视图和其他资源。...(相当于说dba连startup和shutdown这两个权限都没有)Oracle权限一、权限分类——oracle数据库的权限系统分为系统权限与对象权限。 ...
  • Oracle 对象权限

    千次阅读 2010-12-31 11:05:00
    --============================ --author:_yeeXun --date:12/31/2010 11:05:00 AM...对象权限指访问其他方案的权利,用户直接访问自己的方案的对象,但是如果要访问别的方案的 对象,则必须具有对象的权限。 比如s
  • Oracle权限详解

    2010-11-28 07:41:00
    oracle权限 oracle权限一、权限概述 权限是用户对一项功能的执行权力。在Oracle中,根据系统管理方式不同,将权限分为系统权限与实体权限两类。系统权限是指是否被授权用户可以连接到数据库上,在数据库中可以...
  • Oracle 系统权限

    千次阅读 2010-12-31 11:01:00
    --======================= --author:_yeeXun --date:12/31/2010 11:01...系统权限:用于控制用户可以执行的一个或者一组数据库操作。比如当用户具有create table权限时,可以在其他方案中建表;当用户具有create a

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 42,919
精华内容 17,167
关键字:

oraclepublic权限