Oracle10g权限角色管理

来源:互联网 发布:kmeans java实现 编辑:程序博客网 时间:2024/05/18 15:25

http://blog.sina.com.cn/s/blog_417b97470100ga42.html


Oracle10g权限角色管理
权限篇
 1.权限(Privilege)是执行特定类型SQL命令或访问其它方案对象的权利。权限包括系统权限和对象权限两种类型。
  2.系统权限(SystemPrivilege)是执行特定类型SQL命令的权利。它用于控制用户可以执行的一个或一组数据库操作,例如,当用户具有CREATETABLE权限时,可以在其方案中建表;当用户具有CREATE ANYTABLE时,可以在任何方案中建表。Oracle提供了100多种系统权限。
  3.常用的系统权限:
    CREATESESSION连接到数据库      CREATE PROCEDURE 建立存储过程
    CREATE TABLE建表                CREATE TRIGGER 建立触发器
    CREATE VIEW建立视图             CREATE CLUSTER 建立簇
    CREATEPUBLIC SYNONYM 建立同义词  CREATE TYPE 建立对象类型
    CREATESEQUENCE建立序列         CREATE DATABASE LINK 建立数据库链
   另外Oracle还提供了一类ANY系统权限,当用户具有该类系统权限时,可以在任何方案中执行相应操作。
     例:如果用户具有SELECT ANY TABLE系统权限,那么用户可以查询任何方案的表。
 4.对象权限是指访问其它方案对象的权利,它用户控制用户对其他方案的对象的访问。如果用户SMITH要访问SCOTT.EMP表(SCOTT:方案,EMP:表),则必须在SCOTT.EMP表上具有对象权限。
 5.管理系统权限系统权限时执行特定类型SQL语句的权限。需要注意的是Oracle数据库没有CREATEINDEX、修改数据库对象、删除数据库对象等系统权限。言外之意就是如果用户可以创建数据库对象,用户就可以修改数据库对象。
 6.授予系统权限一般而言授予系统权限是由DBA完成的。如果其他用户要授予系统权限,则要求该用户必须具有GRANT ANYPRIVILEGE系统权限。
  7.授予用户blake系统权限
   以DBA用户身份登录,为BLAKE用户授予CREATE SESSION,CREATE TABLE和CREATE VIEW权限,并且前两个权限带有WITH ADMIN OPTION选项(可以将该权限授予其他角色或者用户)。
     GRANT CREATE SESSION,CREATE TABLE TO blake WITH ADMIN OPTION
     GRANT CREATE VIEW TO blake
  8.管理对象权限
   对象权限是指访问其他用户方案对象的权限。在Oracle数据库中,用户可以直接访问其方案对象,但如果要访问其他用户的方案对象时,必须具有相应的对象权限。
   对象权限通常包括:ALTER DELETE INDEX INSERT REFERENCES SELECTUPDATE等8种。
   默认情况下:直接授予用户权限时,将访问所有列的权限都授予用户。
              如果授予另外一个用户对象权限,这该用户默认拥有该对象所有列的权限。
  9.授予ALTER权限
   如果用户在其他方案的表和序列上执行ALTER TABLE或ALTER SEQUENCE命令,必须具有ALTER对象权限。
   例如,如果用户BLAKE需要修改表SCOTT.EMP的结构,则必须为其授予ALTER对象权限。
     GRANT ALTER ON emp TO blake;
  10.授予EXECUTE权限
   如果用户要执行其他方案的包、过程和函数,必须在包、过程和函数上具有EXECUTE对象权限。
  11.授予列权限
   列权限用于控制用户对其他方案对象列的访问,只能在INSERT、UPDATE和REFERENCES上授予列权限。
     GRANT UPDATE(sal)ON emp TO blake;
  12.使用WITH GRANT OPTION选项。
    WITH GRANTOPTION选项用于转授对象权限,该选项只能用于用户,不能授予角色。
  
角色篇   
  1.角色是相关权限的命名集合,使用角色的主要目的是简化权限管理。
  2.CONNECT角色
   执行SQL.BSQ自动建立的角色,该角色具有应用开发人员所需的多种权限。
    系统权限
    作用
    ALTERSESSION修改会话参数配置   CREATE PROCEDURE 建立存储过程
    CREATE TABLE建表                CREATE TRIGGER 建立触发器
    CREATE VIEW建立视图             CREATE CLUSTER 建立簇
    CREATEPUBLIC SYNONYM 建立同义词  CREATE DATABASE LINK建立数据库链
    CREATESEQUENCE 建立序列
  3.RECOURCE角色
   RECOURCE角色是建立数据库时,Oracle执行脚本SQL.BSQ自动建立的角色,该角色具有应用开发人员所需要的其他权限。
    CREATE TYPE建立类型          CREATE PROCEDURE 建立存储过程
    CREATE TABLE建表             CREATE TRIGGER 建立触发器
    CREATEINDEXTYPE 建立索引类型  CREATE CLUSTER 建立簇
    CREATESEQUENCE 建立序列 
  4.DBA角色
   DBA角色是建立数据库时,Oracle执行脚本SQL.BSQ自动建立的角色,该角色具有所有系统权限和WITH ADMINOPTION选项。
   默认DBA用户为SYSTEM,该用户可以将系统权限授予其他用户。
   注意,DBA角色不具备SYSDBA和SYSOPER特权,而SYSDBA特权自动具有DBA角色的所有权限。

 

注:scott 是个演示用户,是让你学习ORACLE用的,一般是锁住的。
     sysdba 不是用户,可以认为是个权限,超级权限
     超级用户分两种 sysdba和sysoper
     sysoper 后面3个字母是operator的意思,也就是操作数据库的人,而sysdba则是管理数据库的人
     sysdba比sysoper的权限还要大,而sys用户就完全是个sysdba.
     但sysdba用户默认是sys,不过它只能以sysdba的权限登陆