zoukankan      html  css  js  c++  java
  • Oracle数据操作和节制言语详解4

      来源:天极网





      权限和脚色

      权限答运用户拜访属于其他用户的对象或执行程序,ORACLE琐细供应三种权限:

       Object 对象级

       System 琐细级

       Role 脚色级

      这些权限可以付与给用户、特别用户public或脚色,假如付与一个权限给特别用户"Public"(用户public是oracle预界说的,每个用户享有这个用户享有的权限),那么就意味作将该权限付与了该数据库的一切用户。

      对治理权限而言,脚色是一个对象,权限可以被付与给一个脚色,脚色也能被付与给另一个脚色或用户。用户可以经由脚色接受权限,除了治理权限外脚色管事没有其他目标。权限可以被付与,也可以用异常的方法消除。

      设立设置配备安排和运用脚色

      如前所诉,脚色存在的目标就是为了使权限的治理变得轻松。设立设置配备安排脚色运用CREATE ROLE语句,他的语法如下:

    CREATE ROLE role_name IDENTIFIED BY password
    CREATE ROLE role_name IDENTIFIED EXTERNALLY
    CREATE ROLE role_name IDENTIFIED GLOBALLY

      缺省情况下设立设置配备安排的脚色没有password梗概其他的识别。假如运用IDENTIFIED BY 子句设立设置配备安排,那么脚色不会自动呼应,必须用SET ROLE激活。

    SET ROLE role_name IDENTIFIED BY password
      EXTERNALLY和GLOBALLY典范的脚色由操作琐细和ORACLE Service server验证。凡是用户需求权限编削运用门径中运用的表单中的数据,但是只要在运用门径运转时而不是在运用ad hoc对象时,这种上下文敏感安静可以经由有PASSWORD的脚色来完成。当用户在运用门径外部连结数据库时,代码将施行SET ROLE命令,经由安静验证。以是用户不需求晓得脚色的password,也不需求本人输出SET ROLE命令。

      对象权限

      对象权限就是指在表、视图、序列、进程、函数或包等对象上施行特别办法的权力。有九种差别典范的权限可以付与给用户或脚色。如下表:

    权限 ALTER DELETE EXECUTE INDEX INSERT READ REFERENCE SELECT UPDATE
    Directory no no no no no yes no no no
    function no no yes no no no no no no
    procedure no no yes no no no no no no
    package no no yes no no no no no no
    DB Object no no yes no no no no no no
    Libary no no yes no no no no no no
    Operation no no yes no no no no no no
    Sequence yes no no no no no no no no
    Table yes yes no yes yes no yes yes yes
    Type no no yes no no no no no no
    View no yes no no yes no no yes yes

      对象由不止一个权限,特别权限ALL可以被付与或消除。如TABLE的ALL权限就包罗:

       SELECT,INSERT,UPDATE和DELETE,还有INDEX,ALTER,和REFERENCE。

      如何看这个表我们以ALTER权限为例住手说明

      ALTER权限

      许可施行ALTER TABLE和LOCK TABLE操作,ALTER TABLE可以住手如下操作:

        . 变动表名

        . 添加或删除列

        . 改动列的数据典范或大小

        . 将表改动为分区表

      在SEQUENCE上的ALTER权限许可施行ALTER Sequence语句,重新给sequence分派最小值、增量和缓冲区大小。

      琐细权限

      琐细权限需求付与者有住手琐细级流动的才略,如连接数据库,变动用户会话、设立设置配备安排表或设立设置配备安排用户等等。你可以在数据字典视图SYSTEM_PRIVILEGE_MAP上取得无缺的琐细权限。对象权限和琐细权限都经由GRANT语句付与用户或脚色。需求留神的是在付与对象权限时语句应该是WITH GRANT OPTION子句,但在付与琐细权象时语句是WITH ADMIN OPTION,以是在你试图付与琐细权限时,运用语句WITH GRANT OPTION琐细会申报一个错误:ONLY ADMIN OPTION can be specified。在考试中要特别留神这个语法和错误信息。

      脚色和脚色权限

      脚色权限就是将属于用户的权限付与一个脚色。任何权限都可以付与给一个脚色。付与琐细权限给被付与者必须运用WITH_ADMIN_OPTION子句,在会话期间经由SET ROLE语句付与或消除脚色权限。但是,脚色权限不能依托存储在SQL中的权限。假如函数、门径、包、触发器梗概方法运用另一个计划拥有的对象,那么就必须直接给对象的拥有者受权,这是由于权限不会在会话之间改动。

      付与和消除权限

       给用户梗概脚色付与权限运用GRANT 语句,GRANT语句的语法如下:

    GRANT ROLE(或system privilege) TO user(role,Public) WITH ADMIN OPTION(可选)
      对象权限被付与 WITH GRANT OPTION,

      权限和数据字典

      数据字典是ORACLE存储有关数据库布局信息的处所,数据本人存放在其他处所,数据字典由表和视图组成。在考试中关于数据字典最任意考的内容是:检查那一类权限曾经被付与。比喻DBA_TAB_PRIV包罗了用户付与给另一用户的对象权限和在付与时能否带有WITH GRANT OTPION子串的信息。留神DBA_TAB_PRIV不但仅包罗了对表的权限的相关,他还包罗函数、包、行列等等上的权限的相关。下表列出了一切的权限和脚色的数据字典视图:

      表: 权限的数据字典视图

    视图 陶染
    ALL_COL_PRIVS 透露表示列上的受权,用户和PUBLIC是被付与者
    ALL_COL_PRIVS_MADE 透露表示列上的受权,用户是属主和被付与者
    ALL_COL_RECD 透露表示列上的受权,用户和PUBLIC是被付与者
    ALL_TAB_PRIVS 透露表示对象上的受权,用户是PUBLIC或被付与者或用户是属主
    ALL_TAB_PRIVS_MADE 透露表示对象上的权限,用户是属主或付与者
    ALL_TAB_PRIVS_RECD 透露表示对象上的权限, 用户是PUBLIC或被付与者
    DBA_COL_PRIVS 数据库列上的一切受权
    DBA_ROLE_PRIVS 表示已付与用户或其他脚色的脚色
    DBA_SYS_PRIVS 已付与用户或脚色的琐细权限
    DBA_TAB_PRIVS 数据库对象上的一切权限
    ROLE_ROLE_PRIVS 表示已付与用户的脚色
    ROLE_SYS_PRIVS 表示经由脚色付与用户的琐细权限
    ROLE_TAB_PRIVS 表示经由脚色付与用户的对象权限
    SESSION_PRIVS 表示用户现在可运用的一切琐细权限
    USER_COL_PRIVS 表示列上的权限,用户是属主、付与者或被付与者
    USER_COL_PRIVS_MADE 表示列上已付与的权限,用户是属主或付与者
    USER_COL_PRIVS_RECD 表示列上已付与的权限,用户是属主或被付与者
    USER_ROLE_PRIVS 表示已付与给用户的一切脚色
    USER_SYS_PRIVS 表示已付与给用户的一切琐细权限
    USER_TAB_PRIVS 表示已付与给用户的一切对象权限
    USER_TAB_PRIVS_MADE 表示已付与给其他用户的对象权限,用户是属主
    USER_TAB_PRIVS_RECD 表示已付与给其他用户的对象权限,用户是被付与者







    版权声明: 原创作品,许可转载,转载时请务必以超链接方式标明文章 原始情由 、作者信息和本声明。否则将深究轨则责任。

  • 相关阅读:
    group by与聚合函数
    表联结
    项目延期 怎样规避风险
    虚拟机安装linux系统
    Cannot truncate a table referenced in a foreign key constraint
    李航--《统计学习方法总结》
    CART算法
    北航学长分享交流笔记
    CentOS7导入MySql数据表结构并显示表结构
    RedHat7安装mysql5.7数据库
  • 原文地址:https://www.cnblogs.com/zgqjymx/p/1976067.html
Copyright © 2011-2022 走看看