zoukankan      html  css  js  c++  java
  • Oracle 用户权限管理

     在成功的创建用户之后,仅仅表示该用户在 Oracle 系统中进行了注册,这样的用户不能连接到数据库。要使用户能够连接到 Oracle 数据库并使用 Oracle 的资源,必须让具有 DBA 角色的用户对该用户进行授权。

    一、权限简介

      根据系统管理方式的不同,在 Oracle 数据库将权限分为两大类:系统权限和对象权限。

      系统权限是在系统级对数据库进行存取和使用的机制,比如用户是否能连接到数据库系统、执行系统级的DDL语句(如create、alter和drop)等

      对象权限是指某一用户对其他用户的表、视图、序列、存储过程、函数、包等的操作权限。不同类型的对象具有不同的对象权限,对于某些模式对象,比如簇、索引、触发器等、数据库连接等没有相应的实体权限,这些权限由系统权限进行管理。

    二、授权操作

      在 Oracle 11g 中有200多种系统特权,并且所有这些系统特权被列举在system_privilege_map 数据目录视图中。授权操作使用grant 命令

      语法 grant   sys_privi  |   role  to  user  |  role | public [ with admin option ]   

    •   sys_privi: 表示 Oracle 系统权限,系统权限是一组约定的保留字。
    •   role: 角色,后面的笔记会介绍到
    •   user :具体的用户名,或者是一些列的用户名
    •   public: 保留字,代表 Oracle 系统的所有用户。
    •   with  admin option :表示被授权者可以再将这些权授予另外的用户。

    三、回收系统权限

      一般用户若被授予多高的权限就可能给 Oracle 系统带来安全隐患。 Oracle 的管理员,应该能够查询当前 Oracle 系统各个用户的权限,并且能够使用 revoke 命令撤销用户的某些不必要的系统权限。

      语法 revoke   sys_privi  |   role  from  user  | role  |  public           

    •  sys_privi :系统权限或角色
    •  role: 角色
    •  user: 具体的用户名
    •  public: 保留字,代表 Oracle 系统所有的用户
    • 注意:如果DBA用 grant 命令给用户A授予系统权限的时候带有with admin option 选项,则用户A有权将系统权限再次授予用户B。如果DBA 使用 revoke 命令撤销用户A的系统权限,则用户B的系统权限仍然有效。

    四、对象授权

      授予对象权限给用户或角色也使用 grant 命令。

      语法 grant obj_privi | all column on schema.object  to  user  |  role  |  public  [  with  grant  option  ]  [  with  hierarchy  option  ]          

    •  obj_privi :表示对象的权限,可以是 alter、execute、select、update 和insert 等。
    •  role: 角色名。
    •  user: 被授权的用户名。
    •  with  admin  option :表示被授权者可在将系统权限授予其他的用户。
    •  with  hierarchy  option: 在对象的子对象(在视图上再建立视图 )上授权给用户。 

    五、回收对象权限

      要从用户或角色中回收对象权限,仍然使用revoke 命令。

      语法 revoke obj_privi  |  all  on  schema.object   from  user  |  role  |  public  cascade  constraints 

    •   obj_privi:表示对象的权限
    •   public:保留字,代表 Oracle 系统的所有权限
    •   cascade  ascade   constraints:表示有关联的权限也被回收
    •  注意:如果DBA 用 grant 命令给用户A授予对象权限时带有 with  admin option选项,则用户A有权将权限再次授予另外的用户B,如果DBA 用 revoke 命令回收用户A的对象权限,用户B的对象权限也被回收。

    六、查询用户与权限

      用户被授予的系统权限或对象权限都被记录在 Oracle 的数据字典里,了解某个用户被授予哪些系统权限和对象权限是确保应用系统安全的重要工作。下表是Oracle 11g 用于存放用户、系统权限、对象权限有关的数据字典。

      

    数据字典名称  说       明
    DBA_Users                  数据库用户基本信息表
    DBA_sys_privs   已授予用户或角色的系统权限
    DBA_TAB_privs 数据库对象上的所有权限
    User_SYS_privs 登录用户可以查看自己的系统权限
    role_sys_privs 登录用户查看自己的角色
    all_tables 用户自己可以查询的基表信息
  • 相关阅读:
    js中Frame框架的属性获取(1)
    c#中文件上传(1)
    表单验证Validform
    Mybatis语法笔记
    js的checkbox
    调用微信Js-SDK支付
    调用微信Js-SDK图片
    java后台上传到linux
    web服务器内层溢出
    SpringMVC
  • 原文地址:https://www.cnblogs.com/niujifei/p/10920582.html
Copyright © 2011-2022 走看看