收藏 分销(赏)

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

上传人:xrp****65 文档编号:13052099 上传时间:2026-01-12 格式:PPT 页数:17 大小:125.50KB 下载积分:10 金币
下载 相关 举报
Oracle用户角色与权限控制.ppt_第1页
第1页 / 共17页
Oracle用户角色与权限控制.ppt_第2页
第2页 / 共17页


点击查看更多>>
资源描述
,Click to edit Master title style,Click to edit Master text styles,用户角色与权限控制,每次登录,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_privs where lower(grantee)=resource;,12.5,本章小结,本章详细讲述了用户、权限和角色的相互关系,并通过多个实例来剖析如何创建用户、分配权限和使用角色。尤其需要注意的是角色的使用,合理使用角色可以极大提高数据库权限管理的效率,减轻数据库,DBA,的工作负担。,12.6,习题,1,简述用户与模式的关系?,2,简述系统权限与对象权限的区别?,3,简述角色的意义。,4,如何实现两个角色之间的继承。,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 行业资料 > 医学/心理学

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服