《Oracle数据库第9章--用户和安全管理课件.ppt》由会员分享,可在线阅读,更多相关《Oracle数据库第9章--用户和安全管理课件.ppt(65页珍藏版)》请在三一办公上搜索。
1、1,第9章 用户和安全管理,主讲人:朱亚兴,1第9章 用户和安全管理 主讲人:朱亚兴,安全管理对于数据库系统来讲至关重要。数据库安全是一个极为突出的问题,数据库数据的丢失以及数据库被非法用户侵入或者被非授权用户访问和篡改对于任何一个应用系统来说都会造成危害。,2,工作情境:为了保证Oracle系统数据的安全性,采取了哪些安全机制 ?,任务分析,安全管理对于数据库系统来讲至关重要。数据,3,Oracle用户,用户是数据库的使用者和管理者。Oracle系统中,用户是允许访问数据库系统的有效帐户, 是可以对数据库资源进行访问的实体。Oracle数据库通过创建用户帐户并为此帐户授予相应的数据库权限等安
2、全参数,用户才能够访问数据库和进行相应的操作。用户管理是Oracle数据库安全管理的核心和基础。,3Oracle用户用户是数据库的使用者和管理者。,任务分解,4,任务1:创建新用户。 任务2:修改、删除和查看用户信息。 任务3:对用户授予和回收系统权限。 任务4:对用户授予和回收对象权限。任务5:创建角色和对角色授权。任务6:管理角色。 任务7:管理概要文件。,任务分解4任务1:创建新用户。,5,任务1,任务1. 创建新用户。,5任务1 任务1. 创建新用户。,6,创建用户管理决策,创建用户 数据库管理员对用户进行下列决策:(1)指定数据库用户的身份认证方式。(2)设置用户的默认表空间和临时表
3、空间。(3)指定表空间配额(4)设置用户资源限制的环境文件(5)设置账户状态,6创建用户管理决策 创建用户 数据库管理员对用户进行下列决策,7,利用OEM创建用户,7利用OEM创建用户,8,使用SQL语句创建新用户,语法格式:,8使用SQL语句创建新用户语法格式:,9,创建用户例,【例9.1】创建用户hr_user,口令为hr_user,默认表空间是 HRM,大小是20MB,临时表空间是temp。 创建一个数据库用户必须具有DBA权限的用户来执行。 connect system/password; 使用如下SQL语句。CREATE USER hr_user IDENTIFIED BY hr_u
4、ser DEFAULT TABLESPACE HRMTEMPORARY TABLESPACE tempQUOTA 20M ON HRM;,9创建用户例 【例9.1】创建用户hr_user,口令为,10,用户管理:授权,CREATE SESSION系统权限允许用户在数据库上建立会话过程,这是用户帐号必须具有的最低权限。 【例9.2】为用户hr_user授予权限CREATE SESSION。 授权。 GRANT CREATE SESSION TO hr_user ; 以新用户连接。 CONNECT hr_user/hr_user;,10用户管理:授权 CREATE SESSION系统权限允,实训1
5、,掌握创建数据库用户的方法。,完成了任务1,请尝试实训1,实训1掌握创建数据库用户的方法。 完成了任务1,请尝试实训1,12,任务2,任务2. 修改、删除和查看用户信息。,12任务2 任务2. 修改、删除和查看用户信息。,13,利用OEM修改用户,13利用OEM修改用户,14,使用SQL语句修改用户信息,【例9.3】 修改用户hr_user 的认证方式、默认表空间、空间配额。 ALTER USER hr_user IDENTIFIED BY hr_user QUOTA 25M ON hrm;【例9.4】 更改用户hr_user的默认表空间。 ALTER USER hr_user DEFAULT
6、 TABLESPACE usertab Temporary TABLESPACE temp;【例9.5】修改用户hr_user的口令 ALTER USER hr_user Identified by hr_user3;,14使用SQL语句修改用户信息【例9.3】 修改用户hr_u,15,使用SQL语句修改用户信息,【例9.6】修改用户的状态,锁定hr_user帐户以及解除锁定。 修改数据库用户必须具有ALTER USER权限的用户来执行。 使用ALTER USER命令锁定账号。 ALTER USER hr_user ACCOUNT LOCK; 使用原数据库用户账号连接数据库。 使用具有ALTE
7、R USER权限的用户重新连接。 使用ALTER USER命令解除账号锁定。ALTER USER hr_user ACCOUNT UNLOCK; 再次使用原数据库用户账号连接数据库。,15 使用SQL语句修改用户信息【例9.6】修改用户的状态,,16,使用SQL语句修改用户信息,【例9.7】修改用户hr_user的密码为立即失效。 使用具有ALTER USER权限的用户重新连接。 使用ALTER USER命令修改密码为立即实效。alter user hr_user password expire; 再次使用原数据库用户账号连接数据库。 使用原数据库用户账号和更改后的新密码连接数据库。,讨论:如
8、果用户忘记密码?,16使用SQL语句修改用户信息【例9.7】修改用户hr_us,17,利用OEM删除用户,17利用OEM删除用户,18,利用SQL命令删除用户,【例9.8】删除用户hr_user,并且同时删除其拥有的表、索引等数据库对象。 DROP USER hr_user CASCADE;,18利用SQL命令删除用户,19,查看用户信息,数据字典视图:,19查看用户信息 数据字典视图:,20,使用SQL语句查看用户信息,【例9.9】查看用户HR_USER的名称、用户标识、锁定日期、账号状态、默认表空间信息。 select username,user_id,lock_date,account_
9、status, default_tablespace from DBA_USERS where username=HR_USER;,20使用SQL语句查看用户信息【例9.9】查看用户HR_US,实训2,掌握修改数据库用户的方法。,完成了任务2,请尝试实训2,实训2掌握修改数据库用户的方法。完成了任务2,请尝试实训2,任务3,任务3.对用户授予和回收系统权限 。,创建完用户后,他不能做任何事情,还必须进行授权。这个任务需要学习权限管理的相关知识。,任务3任务3.对用户授予和回收系统权限 。创建完用户后,他,23,权限管理,系统权限 p:271-274。带ANY权限和不带ANY权限。系统权限允许用
10、户执行一种特殊的数据库操作或一类数据库操作。,23权限管理 系统权限 p:271-274。带ANY权限和不,24,OEM授权,24OEM授权,25,利用SQL命令授予系统权限,语法:,25利用SQL命令授予系统权限语法:,26,利用SQL命令级联授权,26利用SQL命令级联授权,27,利用SQL命令回收系统权限,语法:,27利用SQL命令回收系统权限语法:,28,回收级联授权的系统权限,28回收级联授权的系统权限,DBA,GRANT,REVOKE,USERA,USERB,USERA,USERB,DBA,回收级联授权的系统权限,DBAGRANTREVOKEUSERAUSERBUSERAU,实训3
11、,掌握对用户授予和回收系统权限的方法。,完成了任务3,请尝试实训3,实训3掌握对用户授予和回收系统权限的方法。完成了任务3,请尝,任务4,任务4.对用户授予和回收对象权限。,对象权限是指访问其他用户模式对象的权力。对象权限的设置实际上是对象的所有者给其他用户提供操作该对象的某种权力的一种方法。,任务4任务4.对用户授予和回收对象权限。 对象权限是,32,对象权限,Oracle数据库中总共有9种不同的对象权限。P:279常用的对象权限包括对某个数据库对象中数据的查询、插入、修改、删除等权限。 对于表TABLE对象而言,ALL表示ALTER、DELETE、INDEX、SELECT、INSERT、U
12、PDATE、REFERENCES权限 对于PROCEDURE存储过程,ALL表示EXECUTE权限。,32对象权限 Oracle数据库中总共有9种不同的对象权限,33,OEM授予对象权限,33OEM授予对象权限,34,利用SQL命令授予对象权限,ALL或ALL PRIVILEGES将某个对象的所有对象权限全部授予指定的用户。PUBLIC,授予数据库的所有用户。WITH GRANT OPTION表示被授权的用户、角色可以将相应的对象权限授予其他用户 SQL GRANT ALL ON EMP TO HR_USER;SQL GRANT ALL ON EMP TO PUBLIC;,语法:,34利用SQ
13、L命令授予对象权限 语法:,35,利用SQL命令回收对象权限,语法,35利用SQL命令回收对象权限 语法,36,级联授予对象权限,36级联授予对象权限,37,级联回收对象权限,37级联回收对象权限,回收级联授予的对象权限,回收级联授予的对象权限,39,查询系统权限,与系统权限有关的表与视图,39查询系统权限,40,查询对象权限,与对象权限有关的表与视图,40查询对象权限,实训4,掌握对用户授予和回收对象权限的方法。,完成了任务4,请尝试实训4,实训4掌握对用户授予和回收对象权限的方法。完成了任务4,请尝,任务5,任务5.创建角色和对角色授权。,42,什么是角色?创建一个新角色。对角色进行授权管
14、理。将此角色授予用户。,任务5任务5.创建角色和对角色授权。42什么是角色?创建一,43,角色管理,角色:介于权限和用户之间,是一组系统权限和对象权限的集合。 引入角色优点:减少权限管理的工作量。实现动态权限管理。权限的选择具有可用性和灵活性。应用安全性。 系统预定义角色自定义角色,43角色管理 角色:,44,角色管理,系统预定义角色CONNECT:连接到数据库,最终用户角色.RESOURCE:申请资源创建对象,开发人员角色.DBA:具有全部系统权限,可以创建用户.IMP_FULL_DATABASE:装入全部数据库内容.EXP_FULL_DATABASE:卸出全部数据库内容.DELE_CATA
15、LOG_ROLE:能删除审计表中记录.SELECT_CATALOG_ROLE:查询数据字典.EXECUTE_CATALOG_ROLE:执行过程和函数.,44角色管理 系统预定义角色,45,查询角色与授权,【例9.24】查询当前数据库的所有预定义角色。select * from dba_roles;【例9.25】为用户HR_USER授予CONNECT和RESOURCE角色。grant connect,resource to hr_user;,45查询角色与授权【例9.24】查询当前数据库的所有预定义角,46,在OEM中创建角色,46在OEM中创建角色,47,利用SQL命令创建角色和授权,语法:,
16、47利用SQL命令创建角色和授权语法:,实训5,掌握创建角色和对角色授权的方法。,完成了任务5,请尝试实训5,实训5掌握创建角色和对角色授权的方法。完成了任务5,请尝试实,任务6,任务6.管理角色。,49,如何管理角色呢?,任务6任务6.管理角色。49如何管理角色呢?,50,利用OEM管理角色,50利用OEM管理角色,51,利用SQL命令管理角色,语法: ALTER ROLE role_name NOT IDENTIFIED IDENTIFIED BY password 【例9.28】取消角色manager的口令。ALTER ROLE manager not identified;【例9.29
17、】回收己经授予用户teacher的OPT_ROLE角色:REVOKE OPT_ROLE FROM teacher ;【例9.30】删除角色managerDROP ROLE manager;,51利用SQL命令管理角色 语法:,52,角色的激活或屏蔽,语法: ALTER USER user_name DEFAULT ROLE ROLE_NAME|ALL EXCEPT ROLE_NAME|none;【例9.31】将用户某些角色设置为默认角色。 ALTER USER hr_user DEFAULT ROLE CONNECT,HR_ROLE;【例9.32】屏蔽用户的所有角色。 ALTER USER h
18、r_user DEFAULT ROLE NONE; 或者,可以用下面的SET语句。 SET ROLE none;【例9.33】激活用户的所有角色。 ALTER USER hr_user DEFAULT ROLE ALL; 或者,可以用下面的SET语句。 SET ROLE ALL;,52角色的激活或屏蔽 语法:,53,查询角色信息,DBA_ROLES视图:查看当前数据库中存在的所有角色。SESSION_ROLES视图: 用户当前启用的角色。ROLE_ROLE_PRIVS视图:查看角色与权限授予情况,以及是否有传递权限情况。DBA_ROLE_PRIVS视图:用户(或角色)与角色之间的授予关系。US
19、ER_ROLE_PRIVS视图:查看用户授予的角色。ROLE_SYS_PRIVS视图:查看系统权限授予情况。 DBA_SYS_PRIVS视图:查看每种角色拥有的权利。,53查询角色信息,54,查询角色信息,【例9.34】查询用户HR_USER 所具有的角色。 使用HR_USER用户连接数据库。CONN HR_USER/HR_USER 通过数据字典USER_ROLE_PRIVS查询所具有的角色。select USERNAME, GRANTED_ROLE,ADMIN_OPTION from user_role_privs;,54查询角色信息【例9.34】查询用户HR_USER 所具有,55,查询角
20、色信息,【例9.35】查询哪些角色已经授予哪些用户。 使用sys用户连接数据库。 通过数据字典DBA_ROLE_PRIVS查询哪些角色已经授予哪些用户。select GRANTEE , GRANTED_ROLE, ADMIN_OPTION From dba_role_privs;【例9.36】查询CONNECT和RESOURCE角色授予了哪些权限 使用sys用户连接数据库。conn sys/password as sysdba; 通过数据字典ROLE_SYS_PRIVS查询哪些角色已经授予哪些用户。select role, privilege from ROLE_SYS_PRIVS where
21、 role in (CONNECT,RESOURCE);,55查询角色信息【例9.35】查询哪些角色已经授予哪些用户。,实训6,掌握管理角色的方法。,完成了任务6,请尝试实训6,实训6掌握管理角色的方法。完成了任务6,请尝试实训6,任务7,任务7.管理概要文件。,什么是概要文件?,任务7任务7.管理概要文件。什么是概要文件?,58,概要文件内容,概要文件内容:是数据库和系统资源限制的集合 实例为用户分配一些系统资源,如CPU 的使用、分配SGA 的空间大小、连接数据库的会话数、用户口令期限等。概要文件作用: 限制资源使用管理用户账号口令,58概要文件内容概要文件内容:是数据库和系统资源限制的集
22、合,59,概要文件作用,限制资源使用每个会话或每个语句的CPU时间(以百分之一秒计)。每个会话或每个语句的逻辑磁盘I/O。每个用户的并发数据库会话。每个会话的最大连接时间和空闲时间。可供多进程服务器会话使用的最大的服务器内存。管理账户口令策略帐户的锁定口令的过期时间口令的复杂度允许用户口令可以持续使用的时间指定用户在能够重复使用一个旧口令前必须经过的天数。,59概要文件作用限制资源使用,60,利用OEM创建和管理概要文件,在【企业管理器】中创建概要文件 概要文件的修改将概要文件分配给用户 概要文件的删除,60利用OEM创建和管理概要文件 在【企业管理器】中创建概要,61,利用SQL命令创建和管
23、理概要文件,创建概要文件CREATE PROFILE profile_name LIMITresource_parameters | password_parameters说明:profile_name将要创建的概要文件的名字resource_parameters:对一个用户指定资源限制的参数password_parameters:口令参数 修改概要文件将概要文件分配给用户 删除概要文件,61利用SQL命令创建和管理概要文件 创建概要文件,62,查询概要文件信息,与概要文件相关的表和视图: USER_PASSWORD_LIMITS USER_RESOURCE_LIMITS DBA_PROFIL
24、ES,62查询概要文件信息 与概要文件相关的表和视图:,实训7,掌握管理概要文件的方法。,完成了任务7,请尝试实训7,实训7掌握管理概要文件的方法。完成了任务7,请尝试实训7,小结,Oracle通过使用用户管理、权限与角色、概要文件等措施来保护数据库的安全。Oracle用户管理的机制是Oracle系统安全性的一个重要方面。权限是执行一种特殊类型的SQL语句或存取另一用户的对象的权力。Oracle将权限分为有两类:系统权限和对象权限。角色是一组系统权限和对象权限的集合,角色使得授予权限变得简单。一个角色可授予系统权限或对象权限,任何角色可授权给任何数据库用户。概要文件是Oracle安全策略的重要组成部分。概要文件用来限制由用户使用的系统和数据库资源,并管理口令限制。,小结Oracle通过使用用户管理、权限与角色、概要文件等措施,谢 谢 !,65,谢 谢 !65,