美图欣赏 | 设为首页 | 加入收藏 | 网站地图

当前位置:电脑中国 > 数据库 > oracel >

(Les12 Controlling User Access)[20171218]

2017-12-25 20:38|来源:未知 |作者:dnzg |点击:
目的:
    -对象权限和系统权限的不同之处
    -表格的权限
    -数据字典的视图权限
    -角色授权
    -分区权限和角色
 
控制用户访问
    多用户环境中,要维护数据库访问和使用的安全性。Oracle服务器数据库安全性可以执行以下操作:
        -控制数据库访问
        -授予访问数据库中的特定对象的权限
        -明确Oracle数据字典给予和接收的权限
        -为数据库对象创建同义词
    数据库安全可以分为两类:系统安全和数据安全。
        系统安全:系统级的访问和使用数据库,如用户和密码,分配给用户的磁盘以及用户可以执行的系统操作。
        数据安全:访问和使用数据库对象以及这些用户对这些对象执行的操作。
 
权限: 权限是执行特定SQL的语句,数据库管理员(DBA)是高级用户,具有创建用户和授予用户访问数据库及其对象的权限。用户需要系统权限和对象权限才能访问数据库以及操作数据库中对象的内容。用户还可以被授予给其他用户或角色的额外权限,这些角色被命令为相关权限组。
系统权限:取得访问数据库
对象权限:操作数据库中对象的内容
Schema: 是对象的集合,如表、视图和序列。模式有数据库用户所拥有,并且与该用户具有相同的名称。
 
系统权限
    -有100个可用的系统权限
    -数据库管理员拥有高阶系统权限,如创建一个用户、删除用户、删除表、备份表
    
    典型DBA权限
      
        创建用户
            
CREATE USER user_name IDENTIFIED BY password DEFAULT TABLESPACE [tablespace_name] TEMPORARY TABLESPACE [temp_name];
        改变用户密码
            
ALTER USER user_name IDENTIFIED BY "password";
    用户系统权限
      
       GRANT privilege [,privilege...] TO user [,user | role, PUBLIC ...] [WITH ADMIN OPTION];
        [WITH ADMIN OPTION]:系统级联权限,被授予者可以进一步授予系统权限给其他用户,撤销权限时不会级联撤销系统权限。
        SESSION_PRIVS视图查看当前用户的系统权限。
    
    授予系统权限    
        
GRANT create session,create table,create sequence,create view TO users;
 
什么是角色?
    角色是可授予用户的相关权限的命名组。这种方法更容易地撤销和维护权限。用户可以访问多个角色,并且可以为多个用户分配相同的角色。
    角色的创建和分配
        -CREATE ROLE role_name;->DBA首先必须先创建角色名
        -GRANT create session,create table TO role_name;->给角色分配权限
        -GRANT role_name TO user_name1,user_name2;->将角色分配给用户
        
对象权限
    
 
    对象权限是对特定的表,视图,序列或存储过程操作的特权或权利。每个对象都有一组特定的授予权限。序列只有select和alter对象权限。同义词上会引用基表上的授权。
    GRANT object_priv [(columns)] ON object TO {user|role|PUBLIC} [WITH GRANT OPTION];
        [WITH GRANT OPTION] :级联授权,被授权者可以进一步授予其他用户的对象权限;如果撤销也会级联撤销对象权限;
    
    例如:
 GRANT update (department_name,location_id) ON DEPARTMENTS TO scott,manager;
 
 确认授权的权限
    

 

        ROLE_SYS_PRIVS:系统权限授予的角色
        ROLE_TAB_PRIVS:表权限授予的角色
        USER_ROLE_PRIVS:用户拥有的角色
        USER_TAB_PRIVS_MADE:
 
撤销对象权限
 
  REVOKE {privilege [,privilege ...]|ALL} ON object FROM {user [, user ...]|role |PUBLIC} [CASCADE CONSTRAINTS];
 
        [CASCADE CONSTRAINTS]:消除对象的任何参照完整性约束。
(责任编辑:dnzg)