Oracle数据库安全管理.docx

上传人:b****1 文档编号:2650166 上传时间:2023-05-04 格式:DOCX 页数:41 大小:1.09MB
下载 相关 举报
Oracle数据库安全管理.docx_第1页
第1页 / 共41页
Oracle数据库安全管理.docx_第2页
第2页 / 共41页
Oracle数据库安全管理.docx_第3页
第3页 / 共41页
Oracle数据库安全管理.docx_第4页
第4页 / 共41页
Oracle数据库安全管理.docx_第5页
第5页 / 共41页
Oracle数据库安全管理.docx_第6页
第6页 / 共41页
Oracle数据库安全管理.docx_第7页
第7页 / 共41页
Oracle数据库安全管理.docx_第8页
第8页 / 共41页
Oracle数据库安全管理.docx_第9页
第9页 / 共41页
Oracle数据库安全管理.docx_第10页
第10页 / 共41页
Oracle数据库安全管理.docx_第11页
第11页 / 共41页
Oracle数据库安全管理.docx_第12页
第12页 / 共41页
Oracle数据库安全管理.docx_第13页
第13页 / 共41页
Oracle数据库安全管理.docx_第14页
第14页 / 共41页
Oracle数据库安全管理.docx_第15页
第15页 / 共41页
Oracle数据库安全管理.docx_第16页
第16页 / 共41页
Oracle数据库安全管理.docx_第17页
第17页 / 共41页
Oracle数据库安全管理.docx_第18页
第18页 / 共41页
Oracle数据库安全管理.docx_第19页
第19页 / 共41页
Oracle数据库安全管理.docx_第20页
第20页 / 共41页
亲,该文档总共41页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Oracle数据库安全管理.docx

《Oracle数据库安全管理.docx》由会员分享,可在线阅读,更多相关《Oracle数据库安全管理.docx(41页珍藏版)》请在冰点文库上搜索。

Oracle数据库安全管理.docx

Oracle数据库安全管理

第10章Oracle数据库安全管理

学习目标:

●了解Oracle的安全机制。

●掌握用户的概念和管理方法。

●掌握权限和角色的概念和管理方法。

●了解概要文件的概念和应用方法。

安全性对于任何一个数据库管理系统来说都是至关重要的。

数据库中通常存有大量的数据,任何非法的访问和侵入都可能会造成无法挽救的损失。

Oracle数据库提供了严格、可靠的安全性保护和使用效率,这是其他数据库无法相比的。

.1安全管理概述

数据共享是数据库的主要特点之一,特别是基于网络的数据库,保证数据安全则更加重要。

Oracle数据库安全性可以分为以下几个层次:

系统安全性:

系统级控制数据的存取和使用的机制,包括数据库用户和方案、存储设置、数据库审计、数据库系统跟踪等。

数据安全性:

实体级控制数据库的存取和使用的机制,包括系统权限、对象权限、存期资源控制等。

网络安全性:

Oracle数据库主要面向网络提供服务,网络软件的安全性和网络数据传输至关重要。

它主要包括登录助手、目录管理等集成工具,并通过分发Wallet、数字证书、SSL安全套接字和数字密钥来保证网络数据传输的安全。

在本章我们着重介绍系统安全性及数据安全性,主要涉及的内容有:

用户管理、权限管理及角色管理等。

.2用户

为了使用Oracle,我们需要为自己的数据建立相应的用户账户,这是一项基础而重要的工作。

在实际应用中,我们应该避免使用SYS、SYSTEM等管理账户。

下面介绍如何创建和管理用户。

.2.1用户和方案

用户(User):

也称为账户,是定义在数据库中的对象,是Oracle数据库的基本访问控制机制。

当连接到Oracle数据库时,默认情况下必须要提供用户名和口令。

只有输入了正确的用户名和口令,才能连接到数据库。

方案(Schema):

是用户所拥有的数据库对象的集合。

在Oracle数据库中对象是以用户来组织的,用户与方案时一一对应得关系,并且名称相同。

例如:

SYSTEM用户拥有SYSTEM方案的所有对象,而SCOTT用户拥有SCOTT方案的所有对象。

当访问数据库对象时,注意以下几点:

●同一个方案中不能存在同名对象,但不同方案下可以有同名对象。

●用户可以直接访问其方案对象,如果要访问其他方案对象,要求必须有对象权限。

●用户访问其他方案对象,需添加方案名作前缀。

●SYS方案拥有数据库目录的基本表和视图,这些基本表和视图对Oracle数据库是至关重要的。

Oracle系统为保持数据字典的一致性,SYS方案的表不能被任何用户或管理员修改。

.2.2创建用户

1.创建用户

创建用户操作一般由DBA用户来完成,如果以其他用户身份创建用户,要求该用户具有CREATEUSER的系统权限。

创建用户的基本语法如下:

CREATEUSERIDENTIFIEDBY

DEFAULTTABLESPACE

TEMPORARYTABLESPACE

QUOTAMBON

PASSWORDEXPIRE;

其中:

●username:

所创建用户名;

●INDENTIFIEDBY:

指定用户密码;

●DEFAULTTABLESPACE:

指定用户默认的表空间;

●TEMPORARYTABLESPACE:

指定用户临时表空间;

●QUOTA:

指定表空间配额,用来设置用户对象在表空间上可占用的最大空间;

●PASSWORDEXPIRE:

指定口令到期后,强制用户在登录时修改口令。

【例10.1】在Student数据库中创建名为“my_user1”的用户帐户。

代码如下:

CONNSYSTEM/***

CREATEUSERmy_user1

IDENTIFIEDBYaaa;

图10.1创建用户“my_user1”

注意:

●初始创建的用户没有任何权限,不能执行任何数据库操作。

●如果不指定DEFAULTTABLESPACE,Oracle会将数据库默认表空间作为用户的默认表空间。

●如果不指定TEMPORARYTABLESPACE,Oracle会将数据库默认临时表空间作为用户的临时表空间。

●如果不指定QUOTA子句,用户的表空间配额为0,这样用户没有在相应表空间上创建数据库对象的权限。

2.用户授权

用户授权的详细介绍见后面权限一节。

这里给my_user1用户分配CREATESESSION和CREATETABLE权限。

【例10.2】为“my_user1”用户分配“CREATESESSION”,“CREATETABLE”权限。

代码如下:

GRANTCREATESESSION,CREATETABLETOmy_user1;

图10.2为用户“my_user1”授权

.2.3修改用户

由于工作需要,DBA在管理数据库时可能需要修改用户帐户,如:

修改密码;锁定帐户或解除账户锁定;修改用户的默认表空间或临时表空间;修改表空间配额等。

修改用户帐户使用ALTERUSER命令。

3.修改密码

任何用户都可以修改自己的帐户密码,系统管理员可以重置其它用户账户。

【例10.3】将用户帐户“my_user1”密码修改为“abc”。

代码如下:

ALTERUSERmy_user1IDENTIFIEDBYabc;

图10.3修改用户my_user1的密码

4.锁定及解除账户锁定

在管理数据库时,DBA可以根据需要锁定某些用户账户,临时取消这些账户的使用。

在Oracle系统中,在数据库安装期间,就创建了大量的用户帐户,默认情况下,许多账户是锁定的。

锁定及解除账户锁定的基本语法如下:

ALTERUSERACCOUNT[LOCK|UNLOCK];

【例10.4】锁定用户帐户“my_user1”。

代码如下:

CONNSYSTEM/***

ALTERUSERmy_user1ACCOUNTLOCK;

图10.4锁定用户账户“my_user1”

锁定该账户后,再以该账户连接数据库,提示不能连接到Oracle。

以同样的方法为该帐户解除锁定,并验证其有效性。

【例10.5】为系统帐户“SCOTT”解除锁定并进行数据库连接。

ALTERUSERSCOTTACCOUNTUNLOCK;

CONNSCOTT/TIGER;

图10.5解除“SCOTT”帐户锁定并连接数据库

5.修改表空间配额

表空间配额用于限制用户对象在表空间上可占用的最大空间。

如果没有为用户分配空间或分配空间为0,则该用户不能创建数据库对象,如创建表。

【例10.6】以“my_user1”用户登录数据库,创建“系部副本表”。

执行情况如下:

图10.6以“my_user1”用户创建表

【例10.7】以“SYSTEM”用户登录,修改用户“my_user1”的表空间配额,再以用户“my_user1”重新登录并创建“系部副本表”。

代码和执行情况如下:

CONNSYSTEM/***

ALTERUSERmy_user1

DEFAULTTABLESPACESYSAUX

QUOTA5MONSYSAUX;

图10.7修改表空间配额

.2.4监视用户

DBA可以通过动态性能视图来查看用户在数据库中的活动信息,限制用户对系统资源的使用,以保证数据库的运行安全。

【例10.8】查询动态性能视图V$SESSION,获取用户的会话信息。

图10.8查看“V$SESSION”结构

SELECTSID,SERIAL#,LOGON_TIME,USERNAME,MACHINE

FROMV$SESSION;

图10.9获取用户的会话信息

其中:

●SID和SERIAL#是会话的唯一标识。

●LOGON_TIME表示用户登录数据库的时间。

●USERNAME表示登录数据库的用户帐户。

●MECHINE表示用户帐户登录的计算机名。

注意:

如果SID和SERIAL#不同,而相应的USERNAME相同,表示该用户帐户与数据库建立了两个连接会话。

【例10.9】中止会话标识为“131,10”的数据库会话连接。

ALTERSYSTEMKILLSESSION'131,10';

图10.10终止用户的数据库会话

注意:

如果用户的会话被中止后,其所占用的系统资源将被释放。

.2.5删除用户

删除用户操作一般由DBA用户来完成,如果以其他用户身份创建用户,要求该用户具有DROPUSER的系统权限。

删除用户后,Oracle会从数据字典中删除用户、方案及其所有方案对象。

删除用户的基本语法如下:

DROPUSERusername[CASCADE];

其中:

●CASCADE:

用来删除包含数据库对象的用户。

【例10.10】删除用户“my_user1”。

代码如下:

DROPUSERmy_user1;

图10.11删除用户“my_user1”

注意:

当前正在连接的用户是不能删除的。

如果确定要删除该用户,首先应终止用户会话,再进行删除。

.2.6使用OEM管理用户

使用OEM也可以创建和管理用户,具体操作如下:

(1)登录OEM,选择“管理”属性页。

单击“用户和权限”选项下的“用户”超链接,打开“用户”页,如图10.12所示。

图10.12“用户”页

(2)在“用户”页中可以对用户对象进行创建、编辑、查看和删除等操作。

(3)单击图10.12中“创建”按钮,打开“创建用户”页,分为“一般信息”、“角色”“系统权限”、“对象权限”等属性页。

创建用户“A”,一般信息设置如图10.13所示。

还可以设置其他相关参数,如权限分配:

系统权限分配见图10.14;对象权限分配见图10.15。

分配权限之后,单击“确定”按钮完成用户A的创建即可。

图10.13“创建用户”页

图10.14“分配系统权限”页

图10.15“分配对象权限”页

(4)在图10.12“搜索”项的“名称”文本框内输入要查看的用户名A。

在搜索“结果”列表中单击要查看的用户名,打开“编辑用户”页如图10.16所示,可以看到用户定义信息,也可以对用户信息进行编辑。

图10.16“编辑用户”页

(5)在图10.12结果列表中选择要删除的用户名,单击“删除”按钮,进入“确认”页面,如果确定要删除用户,单击“是”按钮即可。

.3权限

权限(Privilege)是Oracle数据库定义的执行某些操作的能力。

建立用户时,用户没有任何权限,也不能执行任何数据库操作。

如果用户要执行特定的操作,必须授予其一定的权限。

在Oracle数据库中,用户权限有两种:

系统权限和对象权限。

.3.1系统权限

系统权限是指在系统级控制数据库的存取和使用的机制。

如能否启动、停止数据库,是否能修改数据库属性等。

它是针对非方案对象或某一类方案对象的某种操作的权限。

Oracle提供了多种系统权限,所有这些系统权限应该合理地授予不同管理层次的用户。

我们可以通过DBA_SYS_PRIVS查看所有的系统权限。

常用的系统权限如表10.1所示。

表10.1常用的系统权限

系统权限

描述

CREATESESSION

连接到数据库

CREATETABLE

创建表

CREATEANYTABLE

在任何方案中建表

DROPTABLE

删除表

DROPANYTABLE

删除任何方案中的表

CREATEVIEW

创建视图

CREATEPROCEDURE

创建存储过程

EXECUTEANYPROCEDURE

执行任何方案中的存储过程

CREATETRIGGER

创建触发器

CREATESEQUENCE

创建序列

CREATESYNONYM

创建同义词

CREATEUSER

创建用户

DROPUSER

删除用户

6.授予系统权限

系统权限操作一般由DBA用户来完成,如果以其他用户操作,要求该用户具有相应的系统权限。

授予系统权限的基本语法如下:

GRANTsystem_privilegeTOusername|role[WITHADMINOPTION];

其中:

WITHADMINOPTION表示被授权的用户、角色可以将相应的系统权限授予其他用户或角色。

注意:

UNLIMITEDTABLESPACE不能授予角色。

【例10.11】以“SYSTEM”用户登录,创建名为“my_user”的用户帐户,并授予该用户系统权限。

创建用户“my_user”。

代码如下:

CONNSYSTEM/***ASSYSDBA

CREATEUSERmy_user

INDENTIFIEDBYaaa;

授予“my_user”用户CREATESESSION,CREATETABLE等系统权限。

代码如下:

GRANTCREATESESSION,CREATETABLETOmy_user

WITHADMINOPTION;

GRANTCREATEVIEWTOmy_user;

图10.18“SYSTEM”用户授予“my_user”系统权限

【例10.12】以“my_user”用户登录,授予“my_user1”用户“CREATESESSION”和“CREATETABLE”系统权限。

代码如下:

GRANTCREATESESSION,CREATETABLETOmy_user1;

图10.19“my_user”用户授予“my_user1”系统权限

注意:

CREATEVIEW权限不能授予my_user1,因为在对my_user授权时没有使用WITHADMINOPTION选项。

7.查看系统权限

通过数据字典视图DBA_SYS_PRIVS,可以查看所有用户或角色拥有的系统权限;通过数据字典视图USER_SYS_PRIVS,可以查看当前用户拥有的系统权限。

【例10.13】显示当前用户的系统权限。

代码如下:

SELECT*FROMUSER_SYS_PRIVS;

图10.20查看当前用户系统权限

8.撤销系统权限

撤销系统权限操作一般由DBA用户来完成,撤销系统权限的基本语法如下:

REVOKEsystem_privilegeFROMusername|role;

【例10.14】撤销用户“my_user1”的连接数据库的权限,并进行测试。

执行情况如图10.21所示。

REVOKECREATESESSIONFROMmy_user1;

CONNmy_user1/abc;

图10.21撤销用户“my_user1”权限并测试

.3.2对象权限

对象权限是指在对象级控制数据库的存取和使用的机制。

如用户可以存取哪个方案中的对象,是否能对该对象进行查询等操作。

它是针对特定方案对象的操作的权限。

常用的对象权限如表10.2。

表10.2常用的对象权限

对象权限

描述

SELECT

进行数据查询

INSERT

进行数据插入

UPDATE

进行数据更新

DELETE

进行数据删除

EXECUTE

调用或执行相关数据库对象如包、存储过程等

ALTER

修改相关数据库对象,如表、序列等对象

Read

读取指定目录上的Bfile

Index

建立索引的权限

All

所有对象权限

9.授予对象权限

创建对象的用户自动拥有该对象的所有对象权限,不需要授予。

所以对象权限的设置实际上是对象所有者给其他用户提供操作该对象的某种权利的一种方法。

【例10.15】用户“SCOTT”授予“my_user”用户修改其方案对象“EMP”表的权限,并进行测试。

执行情况如图10.22。

CONNSCOTT/***

GRANTALTERONEMPTOmy_user;

CONNmy_user/aaa

ALTERTABLESCOTT.EMPADDbeizhuVARCHAR2(100);

图10.22授予对象权限

10.查看对象权限

通过数据字典视图DBA_TAB_PRIVS,可以查看所有用户或角色拥有的对象权限;通过数据字典视图USER_TAB_PRIVS,可以显示当前用户拥有的对象权限。

【例10.16】显示当前用户的对象权限。

代码如下:

COLGRANTORFORMATA10

COLOBJECTFORMATA15

COLPRIVILEGEFORMATA10

SELECT*FROMUSER_TAB_PRIVS;

图10.23查看当前用户的对象权限

11.撤销对象权限

撤销对象权限一般由对象所有者来完成,撤销对象权限的基本语法如下:

REVOKEobject_privONobjectFROMusername|role[CASCADECONSTRAINTS];

【例10.17】撤销用户“my_user”对SCOTT.EMP的对象权限,并进行测试。

执行情况如图10.24。

CONNSCOTT/***

REVOKEALTERONEMPFROMmy_user;

CONNmy_user/aaa;

ALTERTABLESCOTT.EMPADDbeizhu-1VARCHAR2(100);

图10.24撤销“my_user”用户对象权限

.3.3使用OEM管理权限

管理权限指的是对用户或角色进行权限的分配、查看或撤销。

在OEM中进行权限管理实际上是用户或角色在OEM管理方式下进行权限管理,如图10.14及图10.15所示。

.4角色

角色(Role)是对权限集中管理的一种方法,是一组相关权限的组合,当用户获得某一角色时,它就继承了该角色拥有的全部权限。

这对于多用户系统的权限管理是非常方便和有效的。

.4.1系统内置角色

Oracle提供了一些系统内置角色,用于执行特定的管理任务。

可以通过DBA_SYS_PRIVS数据字典视图查看角色的拥有的权限。

其基本信息如表10.3所示。

表10.3系统内置角色

系统内置角色

描述

CONNECT

具有CREATE(ALTER)SESSION、CREATETABLE、CREATEVIEW、CREATESEQUENCE、CREATECLUSTER、CREATEPUBLICSYNONYM等权限

RECOURCE

具有CREATETABLE、CREATETYPE、CREATESEQUENCE、CREATEPROCEDURE、CREATECLUSTER、CREATETRIGGER等权限

DBA

具有所有的系统权限和WITHADMINOPTION选项

EXECUTE_CATALOG_ROLE

具有对系统内置PL/SQL包的EXECUTE权限

SELECT_CATALOG_ROLE

具有对数据字典的SELECT权限

DELETE_CATALOG_ROLE

具有对系统审计表的DELETE权限

EXP_FULL_DATABASE

具有执行数据库导出操作的权限EXECUTE_CATALOG_ROLE、SELECT_CATALOG_ROLE角色和大量系统权限

IMP_FULL_DATABASE

具有执行数据库导入操作的权限,包含了EXECUTE_CATALOG_ROLE、SELECT_CATALOG_ROLE角色和大量系统权限

RECOVERY_CATALOG_OWNER

为恢复目录所有者提供系统权限。

.4.2自定义角色

12.创建角色

自定义角色是在建立数据库后DBA用户创建的角色。

创建角色的基本语法如下:

CREATEROLErolenameNOTIDENTIFIED|IDENTIFIEDBYrole_password;

其中:

NOTIDENTIFIED:

指创建非验证方式的角色,适合于公用角色或用户默认角色;

IDENTIFIEDBYrole_password:

指创建验证方式的角色,适合于用户私有角色,激活角色时,必须提供口令。

【例10.18】创建一个公用角色“public_role”。

代码如下:

CONNSYSTEM/***

CREATEROLEpublic_role;

图10.25创建公用角色“Public_role”

13.授权角色

初始创建的角色是空角色,没有任何权限。

为角色授权的基本语法见10.3权限一节。

【例10.19】为公用角色“public_role”授权。

代码如下:

GRANTCREATESESSIONTOpublic_roleWITHADMINOPTION;

GRANTSELECT,INSERT,UPDATEON学生表TOpublic_role;

图10.26为公用角色“Public_role”授权

14.查看角色信息

可以通过数据字典视图USER_TAB_PRIVS来查看角色的拥有的权限。

【例10.20】查看角色“public_role”拥有的权限。

代码如下:

SELECT*FROMUSER_TAB_PRIVSWHEREGRANTEE='PUBLIC_ROLE';

15.给用户分配角色

可以将创建的角色分配给用户或其他角色。

基本语法如下:

GRANTrole_nameTOuser|role_name[WITHADMINOPTION];

【例10.21】将角色“Public_role”分配给用户“my_user”。

代码如下:

GRANTpublic_roleTOmy_user;

图10.27分配角色

16.删除角色

如果不再需要某个角色,可以进行删除。

其基本语法为:

DROPROLErole_name;

.4.3使用OEM管理角色

使用OEM管理角色的步骤如下:

(1)登录OEM,选择“管理”属性页。

单击“安全性”选项下“角色”超链接,打开“角色”页,如图10.28所示。

图10.28“角色”页

(2)在“角色”页中可以对角色对象进行创建、编辑、查看和删除等操作。

(3)单击图中“创建”按钮,打开“创建角色”页,分为“一般信息”、“角色”“系统权限”、“对象权限”等属性页,如图10.29所示,在此可以创建角色并设置其相关参数,如权限分配:

系统权限分配见图10.30;对象权限分配见图10.31。

完成角色权限的分配之后,单击“确定”按钮完成角色的创建即可。

图10.29“创建角色”页

图10.30“分配系统权限”页

图10.31“分配对象权限”页

(4)在图10.28中“搜索”项的“名称”文本框内输入要查看的角色名,单击“开始”按钮进行角色搜索。

在搜索“结果”列表中单击要查看的角色名,打开“编辑角色”页,如图10.32所示,可以对角色信息进行修改。

图10.32“编辑角色”页

(5)在图10.28结果列表中选择要删除的角色名,单击“删除”按钮,进入“确认”页面,如果确定要删除角色,单击“是”按钮即可。

.5概要文件

概要文件(Profile)是描述如何使用系统资源(特别是CPU资源)管理数据库口令及其验证方式的文件。

它也是Oracle安全管理的重要部分。

下面主要介绍使用OEM管理概要文件,其命令格式可参考相关书籍。

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

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2