ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Oracle的权限与角色

Oracle的权限与角色

原创 Linux操作系统 作者:jhondom 时间:2013-05-17 16:10:05 0 删除 编辑
Oracle的权限分为system privileges和object privileges两种,用户对前者所做的操作会对数据字典造成影响,对后者的操作会对数据造成影响。
1.常用的system privilege权限包括:
 
  • CREATE SESSION
  • RESTRICTED SESSION:当数据库处于restricted状态的时候,这些用户可以  进 入;
  • ALTER DATABASE
  • ALTER SYSTEM
  • CREATE TABLESPACE
  • CREATE TABLE
  • GRANT ANY OBJECT PRIVILEGE
  • CREATE ANY TABLE
  • DROP ANY TABLE
  • INSERT ANY TABLE, UPDATE ANY TABLE, DELETE ANY TABLE
  • SELECT ANY TABLE
  • 授权的使用方法:GRANT privilege1, privilege2 TO username;

    SQL>grant create table to scott with admin option;

    SQL>connect scott/tiger;

    SQL>grant create table to sj;

    用户scott只能在自己的schema中建立表,用户sj也只能在自己的schema中建立表,如果将scott的该权限收获,sj的权限将依旧存在。

    查看用户所拥有的权限,并且看其是否可以继续授权:

    SQL>select * from dba_sys_privs where grantee='SJ';

    授予any table权限的,任然不能操作SYS表空间中的表;

    2.常用的object privileges:

    可以将select,update,delete,insert,alter,execute等DML操作权限赋给用户,可以针对表,也可以针对表中的某些列,如:

    SQL>grant select on scott.emp to sj;

    SQL>grant update (order_status) on scott.orders to sj;

    SQL>grant allon scott.regions to sj;

    Object Privileges 权限可以级联收回,如通过sj再赋予其他用户的权限在此语句执行后都将收回;

    SQL>revoke select on scott.empfrom sj;

    3.创建和管理角色:

    创建角色时角色的名字不能和现有用户的用户名重复,也不能和现有的角色名重复如:

    SQL>create role hr_junior;

    SQL>grant create session to hr_junior;

    SQL>grant select on hr.regions to hr_junior;

    SQL>create role hr_senior;

    SQL>grant hr_junior to hr_senior with admin option;

    SQL>grant update on hr.regions to hr_senior;

    SQL>create role hr_manager;

    SQL>granth r_senior to hr_manager with admin option;

    SQL>grant allon hr.regions to hr_manager;

    和system privileges权限的收回方式一样,role的收回也是不能级联进行的;

    系统预先定义好的角色:

    • CONNECT:为了向后兼容,现在改为CREATE SESSION,可以创建表
    • RESOURCE:为了向后兼容,可以创建表或存储过程;并且有UNLIMITED TABLESACPE权限;
    • DBA:几乎具备所有的权限,但是不能启动和关闭数据库;
    • SELECT_CATALOG_ROLE:数据库初级管理员最好有这个,它能拥有许多object privileges的权限,但是没有system privileges的权限,也没有用户数据的权限,不能看到用户数据;
    • SCHEDULER_ADMIN:具有管理批量计划脚本的权限

    如给系统中的所有用户赋予表的select权限:

    SQL>grant select on hr.regions to public;

    如将一个用户的默认角色失效:

    SQL>ALTER UESR sj DEFAULT ROLE NONE;

    如将登录角色赋给sj:

    SQL>grant connect to sj ;

    如将登录角色作为sj的默认角色:

    SQL>alter user sj default role connect;

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/20523441/viewspace-761378/ ,如需转载,请注明出处,否则将追究法律责任。

    上一篇: Oracle安装环境
    下一篇: Oracle的存储过程
    请登录后发表评论 登录
    全部评论

    注册时间:2013-04-21

    • 博文量
      15
    • 访问量
      28488