Oracle用户角色与权限控制.ppt

上传人:小飞机 文档编号:6513601 上传时间:2023-11-08 格式:PPT 页数:17 大小:327.97KB
返回 下载 相关 举报
Oracle用户角色与权限控制.ppt_第1页
第1页 / 共17页
Oracle用户角色与权限控制.ppt_第2页
第2页 / 共17页
Oracle用户角色与权限控制.ppt_第3页
第3页 / 共17页
Oracle用户角色与权限控制.ppt_第4页
第4页 / 共17页
Oracle用户角色与权限控制.ppt_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《Oracle用户角色与权限控制.ppt》由会员分享,可在线阅读,更多相关《Oracle用户角色与权限控制.ppt(17页珍藏版)》请在三一办公上搜索。

1、用户角色与权限控制,每次登录Oracle数据库,用户和密码是最基本的信息。当使用特定的用户登录数据库时,该用户便具有自己的特点和操作权限。角色则是权限的集合,角色可以分配给用户,相当于一次性将某个特定权限集合分配给用户。Oracle正是通过这三个重要的对象来实现数据库操作的安全策略。用户及用户的创建;权限及权限的分配;角色及角色的使用。,12.1 用户,用户是数据库中最基本的对象之一。在前面的内容中,登录数据库一直使用了system用户。而该用户是管理员级别的用户,拥有数据库大多数对象的操作权限。在正式开发过程中,使用该用户将是不安全的。一旦操作失当,有可能对数据库造成严重损害。本节将讲述Or

2、acle中用户的基本情况和如何创建用户。,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命令,在创

3、建普通用户的同时,应为其分配一个具体的表空间。create user tiger identified by abc default tablespace usersselect username,account_status,default_tablespace,temporary_tablespace from dba_users where lower(username)=tiger;,12.1.3 用户与模式(Schema),模式是指用户所拥有的所有对象的集合。这些对象包括:表、索引、视图、存储过程等。每个用户都会有独立的模式信息。当然,对于新建用户,在没有创建任何对象时,所拥有的对象

4、集合为空,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数据库常用

5、的两个系统用户。其中sys是Oracle数据库中最高权限用户,其角色为SYSDBA(数据库管理员);而system用户的权限仅次于sys用户,其角色为SYSOPER(数据库操作员)。在权限的范围上,sys可以创建数据库,而system则不可以。system用户密码丢失是一个常见问题。例如,当多次输入错误的密码之后,Oracle会锁定system账号,不允许用户再次登录。sqlplus/ORCL as sysdbashow parameter db_name;select username,account_status from dba_users where lower(username)=s

6、ystem;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;creat

7、e 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:可用

8、于查询表、视图和序列。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

9、table_name=T_EMPLOYEES;5收回用户的对象权限 revoke select on t_employees from tiger;,12.3 角色,虽然可以利用grant命令为所有用户分配权限,但是如果数据库的用户众多,而且权限关系复杂,那么为用户分配权限的工作量将变得十分巨大。因此,Oracle提出了角色的概念。角色是指系统权限或者对象权限的集合。Oracle允许首先创建一个角色,然后将角色信息赋予用户,从而间接地将权限信息添加给用户。因为角色的可复用性,因此,可以将角色再次分配给其他用户,从而减少了重复工作。就角色的创建来说,可以利用继承的特性,从简单的角色衍生出复杂的角

10、色,这无疑大大提高了权限分配工作的效率。,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

11、.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 identif

12、ied 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;selec

13、t*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_privs where lower(grantee)=resource;,12.5 本章小结,本章详细讲述了用户、权限和角色的相互关系,并通过多个实例来剖析如何创建用户、分配权限和使用角色。尤其需要注意的是角色的使用,合理使用角色可以极大提高数据库权限管理的效率,减轻数据库DBA的工作负担。,12.6 习题,1简述用户与模式的关系?2简述系统权限与对象权限的区别?3简述角色的意义。4如何实现两个角色之间的继承。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号