Oracle数据库安全管理课件.ppt
《Oracle数据库安全管理课件.ppt》由会员分享,可在线阅读,更多相关《Oracle数据库安全管理课件.ppt(101页珍藏版)》请在三一办公上搜索。
1、第10章 安全管理,主要内容,Oracle数据库安全性概述用户管理 权限管理 角色管理概要文件管理审计 利用OEM进行安全管理,本章要求,了解Oracle数据库安全机制掌握用户管理掌握权限管理掌握角色管理了解概要文件的作用及其应用了解审计及其应用,10.1 数据库安全性概述,数据库的安全性主要包括两个方面的含义:一方面是防止非法用户对数据库的访问,未授权的用户不能登录数据库;另一方面是每个数据库用户都有不同的操作权限,只能进行自己权限范围内的操作。Oracle数据安全控制机制 用户管理权限管理 角色管理 表空间设置和配额 用户资源限制 数据库审计,Oracle数据库的安全可以分为两类:系统安全
2、性系统安全性是指在系统级控制数据库的存取和使用的机制,包括有效的用户名与口令的组合、用户是否被授权可连接数据库、用户创建数据库对象时可以使用的磁盘空间大小、用户的资源限制、是否启动了数据库审计功能,以及用户可进行哪些系统操作等。数据安全性数据安全性是指在对象级控制数据库的存取和使用机制,包括用户可存取的模式对象和在该对象上允许进行的操作等。,10.2 用户管理,用户管理概述 创建用户 修改用户 删除用户 查询用户信息,10.2.1用户管理概述,Oracle数据库初始用户 SYS:是数据库中具有最高权限的数据库管理员,可以启动、修改和关闭数据库,拥有数据字典;SYSTEM:是一个辅助的数据库管理
3、员,不能启动和关闭数据库,但可以进行其他一些管理工作,如创建用户、删除用户等。SCOTT:是一个用于测试网络连接的用户,其口令为TIGER。PUBLIC:实质上是一个用户组,数据库中任何一个用户都属于该组成员。要为数据库中每个用户都授予某个权限,只需把权限授予PUBLIC就可以了。,用户属性用户身份认证方式默认表空间临时表空间表空间配额 概要文件 账户状态,用户身份认证方式数据库身份认证:数据库用户口令以加密方式保存在数据库内部,当用户连接数据库时必须输入用户名和口令,通过数据库认证后才可以登录数据库。外部身份认证:当使用外部身份认证时,用户的账户由Oracle数据库管理,但口令管理和身份验证
4、由外部服务完成。外部服务可以是操作系统或网络服务。当用户试图建立与数据库的连接时,数据库不会要求用户输入用户名和口令,而从外部服务中获取当前用户的登录信息。全局身份认证:当用户试图建立与数据库连接时,Oracle使用网络中的安全管理服务器(Oracle Enterprise Security Manager)对用户进行身份认证。Oracle的安全管理服务器可以提供全局范围内管理数据库用户的功能。,默认表空间当用户在创建数据库对象时,如果没有显式地指明该对象在哪个表空间中存储,系统会自动将该数据库对象存储在当前用户的默认表空间中。如果没有为用户指定默认表空间,则系统将数据库的默认表空间作为用户的
5、默认表空间。临时表空间 当用户进行排序、汇总和执行连接、分组等操作时,系统首先使用内存中的排序区SORT_AREA_SIZE,如果该区域内存不够,则自动使用用户的临时表空间。在Oracle 10g中,如果没有为用户指定临时表空间,则系统将数据库的默认临时表空间作为用户的临时表空间。,表空间配额表空间配额限制用户在永久表空间中可以使用的存储空间的大小,默认情况下,新建用户在任何表空间中都没有任何配额。用户在临时表空间中不需要配额。概要文件 每个用户都必须有一个概要文件,从会话级和调用级两个层次限制用户对数据库系统资源的使用,同时设置用户的口令管理策略。如果没有为用户指定概要文件,Oracle将为
6、用户自动指定DEFAULT概要文件。账户状态在创建用户的同时,可以设定用户的初始状态,包括用户口令是否过期以及账户是否锁定等。Oracle允许任何时候对帐户进行锁定或解锁。锁定账户后,用户就不能与Oracle数据库建立连接,必须对账户解锁后才允许用户访问数据库。,10.2.2.创建用户,基本语法CREATE USER user_name IDENTIFIED BY password|EXTERNALLY|GLOBALLY AS external_nameDEFAULT TABLESPACE tablespace_nameTEMPORARY TABLESPACE temp_tablesapce_
7、nameQUOTA n K|M|UNLIMITED ON tablespace_namePROFILE profile_namePASSWORD EXPIREACCOUNT LOCK|UNLOCK;,参数说明user_name:用于设置新建用户名,在数据库中用户名必须是唯一的;IDENTIFIED:用于指明用户身份认证方式;BY password:用于设置用户的数据库身份认证,其中password为用户口令;EXTERNALLY:用于设置用户的外部身份认证;GLOBALLY ASexternal_name:用于设置用户的全局身份认证,其中external_name为Oracle的安全管理服务器
8、相关信息;DEFAULT TABLESPACE:用于设置用户的默认表空间,如果没有指定,Oracle将数据库默认表空间作为用户的默认表空间;,TEMPORARY TABLESPACE:用于设置用户的临时表空间;QUOTA:用于指定用户在特定表空间上的配额,即用户在该表空间中可以分配的最大 空间;PROFILE:用于为用户指定概要文件,默认值为DEFAULT,采用系统默认的概要文件;PASSWORD EXPIRE:用于设置用户口令的初始状态为过期,用户在首次登录数据库时必须修改口令;ACCOUNT LOCK:用于设置用户初始状态为锁定,默认为不锁定;ACCOUNT UNLOCK:用于设置用户初始
9、状态为不锁定或解除用户的锁定状态,注意在创建新用户后,必须为用户授予适当的权限,用户才可以进行相应的数据库操作。例如,授予用户CREATE SESSION权限后,用户才可以连接到数据库。创建数据库用户示例 创建一个用户user3,口令为user3,默认表空间为USERS,在该表空间的配额为10 MB,初始状态为锁定。CREATE USER user3 IDENTIFIED BY user3 DEFAULT TABLESPACE USERS QUOTA 10M ON USERS ACCOUNT LOCK;,创建一个用户user4,口令为user4,默认表空间为USERS,在该表空间的配额为10
10、MB。口令设置为过期状态,即首次连接数据库时需要修改口令。概要文件为example_profile(假设该概要文件已经创建)。CREATE USER user4 IDENTIFIED BY user4 DEFAULT TABLESPACE USERS QUOTA 10M ON USERSPROFILE example_profile PASSWORD EXPIRE;,基本语法ALTER USER user_name IDENTIFIEDBY password|EXTERNALLY|GLOBALLY AS external_nameDEFAULT TABLESPACE tablespace_na
11、meTEMPORARY TABLESPACE temp_tablesapce_nameQUOTA n K|M|UNLIMITED ON tablespace_namePROFILE profile_nameDEFAULT ROLE role_list|ALL EXCEPT role_list|NONEPASSWORD EXPIREACCOUNT LOCK|UNLOCK;,10.2.3 修改用户,参数说明role_list:角色列表;ALL:表示所有角色;EXCEPT role_list:表示除了role_list列表中的角色之外的其他角色;NONE:表示没有默认角色。注意,指定的角色必须是使用
12、GRANT命令直接授予该用户的角色。,修改数据库用户示例将用户user3的口令修改为newuser3,同时将该用户解锁。ALTER USER user3 IDENTIFIED BY newuser3 ACCOUNT UNLOCK;修改用户user4的默认表空间为ORCLTBS1,在该表空间的配额为20 MB,在USERS表空间的配额为10 MB。ALTER USER user4DEFAULT TABLESPACE ORCLTBS1 QUOTA 20M ON ORCLTBS1 QUOTA 10M ON USERS;,用户的锁定与解锁某个用户暂时离开工作 某个用户永久离开工作DBA创建的特殊用户帐
13、户示例ALTER USER user3 ACCOUNT LOCK;ALTER USER user3 ACCOUNT UNLOCK;,10.2.4删除用户,基本语法DROP USER user_name CASCADE;步骤先删除用户所拥有的对象再删除用户将参照该用户对象的其他数据库对象标志为INVALID,10.2.5查询用户信息,ALL_USERS:包含数据库所有用户的用户名、用户ID和用户创建时间。DBA_USERS:包含数据库所有用户的详细信息。USER_USERS:包含当前用户的详细信息。DBA_TS_QUOTAS:包含所有用户的表空间配额信息。USER_TS_QUOTAS:包含当前用
14、户的表空间配额信息。V$SESSION:包含用户会话信息。V$OPEN_CURSOR:包含用户执行的SQL语句信息。,查看数据库所有用户名及其默认表空间。SELECT SERNAME,DEFAULT_TABLESPACE FROM DBA_USERS;查看数据库中各用户的登录时间、会话号。SELECT SID,SERIAL#,LOGON_TIME,USERNAME FROM V$SESSION;,10.3 权限管理,权限管理概述系统权限管理对象权限管理查询权限信息,10.3.1权限管理概述,概念所谓权限就是执行特定类型SQL命令或访问其他用户的对象的权利。用户在数据库中可以执行什么样的操作,以
15、及可以对哪些对象进行操作,完全取决于该用户所拥有的权限。分类系统权限:系统权限是指在数据库级别执行某种操作的权限,或针对某一类对象执行某种操作的权限。例如,CREATE SESSION权限、CREATE ANY TABLE权限。对象权限:对象权限是指对某个特定的数据库对象执行某种操作的权限。例如,对特定表的插入、删除、修改、查询的权限。,授权方法直接授权:利用GRANT命令直接为用户授权。间接授权:先将权限授予角色,然后再将角色授予用户。,10.3.2系统权限管理,系统权限分类系统权限的授权 系统权限的回收,(1)系统权限分类,一类是对数据库某一类对象的操作能力,通常带有ANY关键字。例如,C
16、REATE ANY INDEX,ALTER ANY INDEX,DROP ANY INDEX。另一类系统权限是数据库级别的某种操作能力。例如,CREATE SESSION。,(2)系统权限的授权,语法为GRANT sys_priv_list TO user_list|role_list|PUBLIC WITH ADMIN OPTION;参数说明:sys_priv_list:表示系统权限列表,以逗号分隔;user_list:表示用户列表,以逗号分隔;role_list:表示角色列表,以逗号分隔;PUBLIC:表示对系统中所有用户授权;WITH ADMIN OPTION:表示允许系统权限接收者再把
17、此权限授予其他用户。,系统权限授予时需要注意的几点:只有DBA才应当拥有ALTER DATABASE 系统权限。应用程序开发者一般需要拥有CREATE TABLE、CREATE VIEW和CREATE INDEX等系统权限。普通用户一般只具有CREATE SESSION系统权限。只有授权时带有WITH ADMIN OPTION子句时,用户才可以将获得的系统权限再授予其他用户,即系统权限的传递性。,为PUBLIC用户组授予CREATE SESSION系统权限。GRANT CREATE SESSION TO PUBLIC;为用户user1授予CREATE SESSION,CREATE TABLE,
18、CREATE INDEX系统权限。GRANT CREATE SESSION,CREATE TABLE,CREATE VIEW TO user1;为用户user2授予CREATE SESSION,CREATE TABLE,CREATE INDEX系统权限。user2获得权限后,为用户user3授予CREATE TABLE权限。GRANT CREATE SESSION,CREATE TABLE,CREATE VIEW TO user2 WITH ADMIN OPTION;CONNECT user2/user2 ORCL GRANT CREATE TABLE TO user3;,语法为REVOKE
19、sys_priv_list FROM user_list|role_list|PUBLIC;注意事项多个管理员授予用户同一个系统权限后,其中一个管理员回收其授予该用户的系统权限时,该用户将不再拥有相应的系统权限。为了回收用户系统权限的传递性(授权时使用了WITH ADMIN OPTION子句),必须先回收其系统权限,然后再授予其相应的系统权限。如果一个用户获得的系统权限具有传递性,并且给其他用户授权,那么该用户系统权限被回收后,其他用户的系统权限并不受影响。,(3)系统权限的回收,10.3 对象权限管理,对象权限分类对象权限的授权对象权限的回收,(1)对象权限分类,在Oracle数据库中共有9
20、种类型的对象权限,不同类型的模式对象有不同的对象权限,而有的对象并没有对象权限,只能通过系统权限进行控制,如簇、索引、触发器、数据库链接等。,(2)对象权限的授权,语法GRANT obj_priv_list|ALL ON schema.objectTO user_list|role_list WITH GRANT OPTION;参数说明obj_priv_list:表示对象权限列表,以逗号分隔;schema.object:表示指定的模式对象,默认为当前模式中的对象;user_list:表示用户列表,以逗号分隔;role_list:表示角色列表,以逗号分隔;WITH GRANT OPTION:表示
21、允许对象权限接收者把此对象权限授予其他用户。,将scott模式下的emp表的SELECT,UPDATE,INSERT权限授予user1用户。GRANT SELECT,INSERT,UPDATEON scott.emp TO user1;将scott模式下的emp表的SELECT,UPDATE,INSERT权限授予user2用户。user2用户再将emp表的SELECT,UPDATE权限授予user3用户。GRANT SELECT,INSERT,UPDATE ON scott.emp TO user2 WITH GRANT OPTION;CONNECT user2/user2ORCLGRANT
22、SELECT,UPDATE ON scott.emp TO user3;,语法REVOKE obj_priv_list|ALL ON schema.object FROM user_list|role_list;注意事项多个管理员授予用户同一个对象权限后,其中一个管理员回收其授予该用户的对象权限时,该用户不再拥有相应的对象权限。为了回收用户对象权限的传递性(授权时使用了WITH GRANT OPTION子句),必须先回收其对象权限,然后再授予其相应的对象权限。如果一个用户获得的对象权限具有传递性(授权时使用了WITH GRANT OPTION子句),并且给其他用户授权,那么该用户的对象权限被回
23、收后,其他用户的对象权限也被回收。,(3)对象权限的回收,WITH ADMIN OPTION当甲用户授权给乙用户,且激活该选项,则被授权的乙用户具有管理该权限的能力:或者能把得到的权限再授给其他用户丙,或者能回收授出去的权限。当甲用户收回乙用户的权限后,乙用户曾经授给丙用户的权限仍然存在与WITH GRANT OPTION比较当甲用户授权给乙用户,且激活该选项,则被授权的乙用户具有管理该权限的能力:或者能把得到的权限再授给其他用户丙,或者能回收授出去的权限。当甲用户收回乙用户的权限后,乙用户曾经授给丙用户的权限也被回收。,WITH ADMIN OPTION,DBA,GRANT,REVOKE,J
24、eff,Emi,Jeff,Emi,DBA,GRANT,REVOKE,WITH GRANT OPTION,Bob,Jeff,Emi,Emi,Jeff,Bob,10.3.4查询权限信息,DBA_TAB_PRIVS:包含数据库所有对象的授权信息ALL_TAB_PRIVS:包含数据库所有用户和PUBLIC用户组的对象授权信息USER_TAB_PRIVS:包含当前用户对象的授权信息DBA_COL_PRIVS:包含所有字段已授予的对象权限ALL_COL_PRIVS:包含所有字段已授予的对象权限信息USER_COL_PRIVS:包含当前用户所有字段已授予的对象权限信息。DBA_SYS_PRIVS:包含授予用
25、户或角色的系统权限信息USER_SYS_PRIVS:包含授予当前用户的系统权限信。,10.4角色管理,Oracle数据库角色概述 预定义角色 自定义角色利用角色进行权限管理 查询角色信息,10.4.1 Oracle数据库角色概述,角色的概念所谓角色就是一系列相关权限的集合,10.4.2 预定义角色,预定义角色概述预定义角色是指在Oracle数据库创建时由系统自动创建的一些常用的角色,这些角色已经由系统授予了相应的权限。DBA可以直接利用预定义的角色为用户授权,也可以修改预定义角色的权限。Oracle数据库中有30多个预定义角色。可以通过数据字典视图DBA_ROLES查询当前数据库中所有的预定义
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Oracle 数据库 安全管理 课件
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-2167160.html