Oracle用户角色与权限控制.ppt_第1页
Oracle用户角色与权限控制.ppt_第2页
Oracle用户角色与权限控制.ppt_第3页
Oracle用户角色与权限控制.ppt_第4页
Oracle用户角色与权限控制.ppt_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

用户角色与权限控制,每次登录Oracle数据库,用户和密码是最基本的信息。当使用特定的用户登录数据库时,该用户便具有自己的特点和操作权限。角色则是权限的集合,角色可以分配给用户,相当于一次性将某个特定权限集合分配给用户。Oracle正是通过这三个重要的对象来实现数据库操作的安全策略。 用户及用户的创建; 权限及权限的分配; 角色及角色的使用。,12.1 用户,用户是数据库中最基本的对象之一。在前面的内容中,登录数据库一直使用了system用户。而该用户是管理员级别的用户,拥有数据库大多数对象的操作权限。在正式开发过程中,使用该用户将是不安全的。一旦操作失当,有可能对数据库造成严重损害。本节将讲述Oracle中用户的基本情况和如何创建用户。,12.1.1 Oracle中的用户,Oracle中的用户可以分为两类:一类是Oracle数据库创建时,由系统自动创建的用户,称为系统用户,如sys和system;另一类用户是利用系统用户创建的用户,称为普通用户。可以通过查询视图dba_users来查看当前数据库的所有用户状况。 select username, account_status, default_tablespace, temporary_tablespace from dba_users,12.1.2 创建新用户,可以在Oracle中创建新的用户。创建用户应该使用create user命令,在创建普通用户的同时,应为其分配一个具体的表空间。 create user tiger identified by abc default tablespace users select username, account_status, default_tablespace, temporary_tablespace from dba_users where lower(username) = tiger;,12.1.3 用户与模式(Schema),模式是指用户所拥有的所有对象的集合。这些对象包括:表、索引、视图、存储过程等。每个用户都会有独立的模式信息。当然,对于新建用户,在没有创建任何对象时,所拥有的对象集合为空,Schema同样为空。但是,Schema必须依赖于用户的存在而存在,即不存在不属于任何用户的Schema对象。 select sys_context(userenv, current_user) current_user, sys_context(userenv, current_schema) current_schema from dual; create table dual(testdata varchar2(20); Select * from dual; select * from sys.dual;,12.1.4 系统用户sys和system,系统用户sys和system是Oracle数据库常用的两个系统用户。其中sys是Oracle数据库中最高权限用户,其角色为SYSDBA(数据库管理员);而system用户的权限仅次于sys用户,其角色为SYSOPER(数据库操作员)。在权限的范围上,sys可以创建数据库,而system则不可以。 system用户密码丢失是一个常见问题。例如,当多次输入错误的密码之后,Oracle会锁定system账号,不允许用户再次登录。 sqlplus /ORCL as sysdba show parameter db_name; select username, account_status from dba_users where lower(username)=system; alter user system account unlock; alter user system identified by abc123;,12.2 权限,权限(Privilege)的最终作用对象是用户。即所有用户在数据库内的操作对象和可执行的动作都是受到限制的。Oracle中共有两种权限:系统权限和对象权限。,12.2.1 系统权限,1获得系统权限的相关信息 select distinct privilege from dba_sys_privs; 2为用户分配权限 sqlplus tiger/abctest grant create session to tiger; create table tiger(name varchar2(20); grant create table to tiger; alter user tiger quota 10M on users quota 2M on temp; select * from dba_sys_privs where lower(grantee) = tiger; 3收回用户的系统权限 revoke create table from tiger; create table test(test_data varchar2(2);,12.2.2 对象权限,对象权限是指用户对已有对象的操作权限。这些权限包括以下几种: select:可用于查询表、视图和序列。 insert:向表或视图中插入新的记录 update:更新表中数据 delete:删除表中数据 execute:函数、存储过程、程序包等的调用或执行 index:为表创建索引 references:为表创建外键 alter:修改表或者序列的属性,12.2.2 对象权限,1为用户赋予select权限 grant select on t_employees to tiger; 2为用户赋予insert权限 3为用户赋予update权限 4为用户赋予all权限 select table_name, grantee, grantor, privilege from dba_tab_privs where table_name = T_EMPLOYEES; 5收回用户的对象权限 revoke select on t_employees from tiger;,12.3 角色,虽然可以利用grant命令为所有用户分配权限,但是如果数据库的用户众多,而且权限关系复杂,那么为用户分配权限的工作量将变得十分巨大。因此,Oracle提出了角色的概念。 角色是指系统权限或者对象权限的集合。Oracle允许首先创建一个角色,然后将角色信息赋予用户,从而间接地将权限信息添加给用户。因为角色的可复用性,因此,可以将角色再次分配给其他用户,从而减少了重复工作。 就角色的创建来说,可以利用继承的特性,从简单的角色衍生出复杂的角色,这无疑大大提高了权限分配工作的效率。,12.3.1 创建和使用角色,创建角色可以使用命令create role,并可以利用grant命令为角色分配权限,最后将角色信息赋予用户。 create role role_employee; grant select on t_employees to role_employee; select table_name, grantee, grantor, privilege from dba_tab_privs where table_name = T_EMPLOYEES; grant role_employee to tiger select * from system.t_employees order by employee_id;,12.3.2 继承角色,角色继承是指一个角色可以继承其他角色的权限信息,从而减少自身使用grant的机会。 create role role_hr; grant role_employee to role_hr; grant update, insert on t_employees to role_hr; select table_name, grantee, grantor, privilege from dba_tab_privs where table_name = T_EMPLOYEES; create user cat identified by abc; grant create session to cat; grant role_hr to cat; update system.t_employees set status = CXL where employee_id = 13;,12.3.3 禁用和启用角色,每个用户登录数据库时,都可以获得其默认角色。可以通过查询视图session_roles来获得当前会话下该用户的默认角色。管理员可以禁用用户的默认角色,一旦禁用,则用户从该角色获得的权限将不再有效。 alter user cat default role none; select * from session_roles; select * from system.t_employees order by employee_id; set role role_hr; select * from session_roles; select * from system.t_employees order by employee_id;,12.4 本章实例,Oracle数据库内置了几个默认角色。这些角色包括:RESOURCE、CONNECT和DBA。在许多应用系统的开发中,往往为开发人员创建一个新的用户,并为该用户分配CONNECT和RESOURCE角色。本节将查看这两种角色的主要权限。 select * from dba_sys_privs where lower(grantee) = connect; select * from dba_sys_

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论