第7章安全管理.docx

上传人:b****5 文档编号:12676179 上传时间:2023-04-21 格式:DOCX 页数:48 大小:322.34KB
下载 相关 举报
第7章安全管理.docx_第1页
第1页 / 共48页
第7章安全管理.docx_第2页
第2页 / 共48页
第7章安全管理.docx_第3页
第3页 / 共48页
第7章安全管理.docx_第4页
第4页 / 共48页
第7章安全管理.docx_第5页
第5页 / 共48页
点击查看更多>>
下载资源
资源描述

第7章安全管理.docx

《第7章安全管理.docx》由会员分享,可在线阅读,更多相关《第7章安全管理.docx(48页珍藏版)》请在冰豆网上搜索。

第7章安全管理.docx

第7章安全管理

第7章Oracle安全管理

本章主要介绍Oracle的安全管理,包括用户管理、权限管理、角色管理、概要文件管理以及审计管理。

7.1用户管理

Oracle是一个多用户的数据库系统,每一个试图使用Oracle数据库系统的用户都必须拥有一个合法的用户名和口令,这样才能进入数据库系统进行相应的操作。

用户管理是实现Oracle系统安全性的重要手段,Oracle系统为不同的用户分配不同的权限或角色,每个用户只能在自己的权限范围内进行操作,任何超越权限范围的操作都被Oracle系统视为非法。

用户管理主要包括创建用户、修改用户的设置和口令、锁定和解锁用户、删除用户等。

7.1.1创建用户

创建用户的SQL命令是CREATEUSER,基本语法如下:

CREATEUSER用户名IDENTIFIEDBY口令

[{DEFAULTTABLESPACE默认表空间名称

|TEMPORARYTABLESPACE临时表空间名称

|QUOTA{数目[K|M]UNLIMITED}ON表空间名称

|PROFILE用户配置文件

|PASSWORDEXPIRE

|ACCOUNT{LOCK|UNLOCK}

]

其中,用户名指用户账号名称;IDENTIFIED关键字指定用户的认证方式,通常为口令方式;DEFAULTTABLESPACE指定用户的默认表空间名称;TEMPORARYTABLESPACE指定用户的临时表空间名称;QUOTA关键字限制用户使用表空间的数量,单位为KB或MB;UNLIMITED指使用表空间不受限制;PROFILE关键字指定用户的配置文件;PASSWORDEXPIRE指定用户的密码已经到期失效,在用户登录时,强制用户更改密码;ACCOUNT指定锁定或解锁用户账号。

下面的语句创建了一个用户。

SQL>CREATEUSER"LOTUS"

IDENTIFIEDBY"LOTUS"

DEFAULTTABLESPACE"USERS"

QUOTA10KONUSERS

PROFILE"DEFAULT"

ACCOUNTUNLOCK;

GRANT"CONNECT"TO"LOTUS";

GRANT"DBA"TO"LOTUS";

用户已创建。

授权成功。

授权成功。

上面语句中的GRANT子句用来对LOTUS用户授予权限。

如要在OEM中创建用户账号,则在“服务器”选项卡上的安全性中选择“用户”选项,打开“用户”界面,如图7-1所示。

图7-1“用户”界面

此界面可以用来显示数据库中所有用户信息。

如果在“对象名”文本框中输入完整或部分的用户名称,再单击“开始”按钮,在下面的区域将显示查询到符合条件的用户列表。

如果要创建用户,单击“创建”按钮,显示“创建用户”界面,如图7-2所示。

图7-2“创建用户”的“一般信息”选项卡

在“一般信息”选项卡的“名称”文本框中输入用户名MENGDX,在“概要文件”下拉列表框中选择分配给用户的概要文件,如果没有作选择,默认将分配DEFAULT概要文件(关于概要文件的介绍详见7.4节)。

在“验证”下拉列表框中选择用户身份认证方式,选择认证方式为“口令”。

如果选中“口令即刻失效”复选框,则系统在用户第一次登录时将提示更改口令。

在“输入口令”和“确认口令”处都输入MENGDX。

在“默认表空间”文本框处选择用户的默认表空间(可以通过右边的图标

,在打开的方案选择界面中进行选择),这里选择USERS表空间。

在“临时表空间”文本框中输入用户的临时表空间,这里选择TEMP临时表空间。

在“状态”选项组中选择“未锁定”单选按钮,将解除对用户账号的锁定,允许用户访问数据库,默认选中“未锁定”单选按钮。

如果选中“锁定”单选按钮,则锁定用户账号,禁止用户访问数据库。

接着继续设置用户的角色。

切换到“角色”选项卡。

在此单击“编辑列表”按钮,出现“修改角色”界面如图7-3所示。

在“可用角色”列表框中选择要授予用户的角色,单击“移动”按钮,把它们添加到“所选角色”列表中,还可以通过“删除”按钮撤销已经添加到“所选角色”列表中的角色。

默认授予CONNECT角色,这是连接数据库的角色。

这里,添加DBA角色给当前用户。

角色是系统权限和对象权限的集合,关于角色的介绍详见7.3节。

图7-3“创建用户”的“角色”选项卡

“系统权限”选项卡用于设置用户可以执行某个操作的权限,它不属于某个具体的方案对象。

其设置方法类似角色的设置,这里不再赘述。

这里选择UNLIMITEDTABLESPACE、CREATEANYTABLE、ALTERANYTABLE、SELECTANYTABLE和DROPANYTABLE等几种系统权限,如图7-4所示。

图7-4“创建用户”的“系统权限”选项卡

“对象权限”选项卡用于设置对特定的方案对象进行操作的权限,可以为方案对象添加读取、写入、修改、删除、添加和引用等对象权限。

如这里选择对象类型为“表”然后单击“添加”按钮,如选择HR.JOBS表,单击“全部移动”按钮,则左边的“可用权限”将全部添加到右边的“所选权限”,如图7-5所示。

图7-5“创建用户”的“对象权限”选项卡

在“限额”选项卡中可以指定用户在其中分配空间的表空间,以及用户在每个表空间中可分配的最大空间数量。

在列表中选择表空间,并单击“无”、“无限制”或“值”按钮来为表空间指定限额大小,如图7-6所示。

图7-6“创建用户”的“限额”选项卡

“使用者组切换权限”选项卡用于对资源使用者组的权限切换进行管理。

其设置方法类似于角色的设置,这里不再赘述。

“使用者组切换权限”选项卡如图7-7所示。

图7-7“创建用户”的“使用者组切换权限”选项卡

在“代理用户”选项卡中可指定代理此用户的用户及此用户可代理的用户,这里指定可代理MENGDX用户的用户是HR,MENGDX用户可代理的其他用户是LOTUS,如图7-8所示。

图7-8“创建用户”的“代理用户”选项卡

上面的步骤都设置完成后,就可以完成创建用户MENGDX,其相应的SQL语句如下。

CREATEUSER"MENGDX"PROFILE"DEFAULT"

IDENTIFIEDBY"MENGDX"DEFAULTTABLESPACE"USERS"

TEMPORARYTABLESPACE"TEMP"

ACCOUNTUNLOCK

GRANTUNLIMITEDTABLESPACETO"MENGDX";

GRANTALTERANYTABLETO"MENGDX";

GRANTCOMMENTANYTABLETO"MENGDX";

GRANTCREATEANYTABLETO"MENGDX";

GRANTDELETEANYTABLETO"MENGDX";

GRANTDROPANYTABLETO"MENGDX";

GRANTFLASHBACKANYTABLETO"MENGDX";

GRANTINSERTANYTABLETO"MENGDX";

GRANTSELECTANYTABLETO"MENGDX";

GRANTUPDATEANYTABLETO"MENGDX";

GRANTALTERON"HR"."JOBS"TO"MENGDX";

GRANTDELETEON"HR"."JOBS"TO"MENGDX";

GRANTINDEXON"HR"."JOBS"TO"MENGDX";

GRANTINSERTON"HR"."JOBS"TO"MENGDX";

GRANTREFERENCESON"HR"."JOBS"TO"MENGDX";

GRANTSELECTON"HR"."JOBS"TO"MENGDX";

GRANTUPDATEON"HR"."JOBS"TO"MENGDX";

GRANT"CONNECT"TO"MENGDX"WITHADMINOPTION;

GRANT"DBA"TO"MENGDX"WITHADMINOPTION;

ALTERuser"MENGDX"GRANTCONNECTTHROUGHHR;

ALTERuserLOTUSGRANTCONNECTTHROUGH"MENGDX";

7.1.2修改用户

Oracle允许修改用户的概要文件、更改口令、更改用户的默认表空间及临时表空间、锁定/解锁用户、更改限额等。

修改用户的SQL命令是ALTERUSER语句,其语法格式与CREATEUSER基本相同,下面列举了一些常见的修改用户操作。

下面的语句更改了LOTUS用户的概要文件为PROFILE1,PROFILE1是已经建立好的概要文件名。

SQL>ALTERUSERLOTUSPROFILEPROFILE1;

用户已更改。

下面的语句更改LOTUS用户的口令为LOTUS123。

SQL>ALTERUSERLOTUSIDENTIFIEDBYLOTUS123;

用户已更改。

下面的语句更改LOTUS用户的默认表空间为XXGCX表空间。

SQL>ALTERUSERLOTUSDEFAULTTABLESPACEXXGCX;

用户已更改。

下面的语句更改临时表空间为一个新建的临时表空间TEMP2。

SQL>ALTERUSERLOTUSTEMPORARYTABLESPACETEMP2

用户已更改。

下面的语句锁定LOTUS用户账号。

SQL>ALTERUSERLOTUSACCOUNTLOCK;

用户已更改。

另外,解锁用户账号用下面的语句:

SQL>ALTERUSERLOTUSACCOUNTUNLOCK;

用户已更改。

下面的语句更改LOTUS用户在USERS表空间的限额为无限。

SQL>ALTERUSERLOTUSQUOTAUNLIMITEDONUSERS;

用户已更改。

如要在OEM中修改用户账号,则在的“服务器”选项卡的安全性中选择“用户”选项,打开“用户”界面。

在用户界面中单击“编辑”按钮,出现“编辑用户”界面,这里的操作与创建用户的操作类似,不再赘述。

7.1.3删除用户

删除用户的SQL命令是DROPUSER语句,删除上述用户相对应的SQL语句如下。

SQL>DROPUSERLOTUS;

用户已删除。

注意:

在使用DROPUSER命令删除用户时,如果没有指定CASCADE子句,同时该用户拥有自己的Oracle对象,将提示出错信息,指定CASCADE子句后,将删除该用户拥有的所用对象。

另外,不能删除当前正在使用数据库的用户。

在OEM中删除用户时,选中要删除的用户,单击“删除”按钮,在随后出现的确认界面中单击“是”按钮,就可以完成删除用户的工作。

7.1.4有关用户的数据字典

Oracle系统中与用户信息有关的数据字典如表7-1所示。

表7-1有关用户的数据字典

名称

说明

DBA_USERS

数据库中所用用户的账号信息

ALL_USERS

当前用户可以访问的所有用户的账号信息

USER_USERS

当前用户的账号信息

DBA_TS_QUOTAS

数据库中所有用户的表空间配额信息

USER_TS_QUOTAS

当前用户的表空间配额信息

USER_PASSWORD_LIMITS

分配给用户的口令文件参数信息

USER_RESOURCE_LIMITS

分配给用户的资源限制信息

DBA_PROFILES

数据库中所有用户的配置文件和限制信息

RESOURCE_COST

数据库中所有资源的消耗情况信息

下面的语句显示数据库中所有用户的账号名称、账号状态及配置文件名。

SQL>SELECTUSERNAME,ACCOUNT_STATUS,PROFILEFROMDBA_USERS;

USERNAMEACCOUNT_STATUSPROFILE

------------- ---------------------------------

SYSOPEN   DEFAULT

SYSTEMOPEN  DEFAULT

DBSNMPOPEN  DEFAULT

SCOTTOPEN  DEFAULT

MDXOPENDEFAULT

LOTUSOPEN  DEFAULT

.......................

已选择38行。

下面的语句查看LOTUS用户的表空间限额。

SQL>SELECT*FROMDBA_TS_QUOTASWHEREUSERNAME='LOTUS';

TABLESPACE_NAMEUSERNAMEBYTESMAX_BYTESBLOCKSMAX_BLOCKSDRO

--------------------------------------------------------

USERSLOTUS016384 02NO

7.2权限管理

权限指用户对数据库进行操作的能力,如果不对新建的用户赋予一定的权限,该用户是不能对数据库进行操作的。

Oracle权限分为系统权限和对象权限两种,系统权限指在Oracle数据库系统中执行某项操作的能力,对象权限指在特定数据库对象上执行某项操作的能力。

Oracle系统通过授予和撤销权限,实现对数据库系统安全的访问控制。

7.2.1系统权限

Oracle提供了众多的系统权限,每一种系统权限指明用户进行某一种或某类特定的数据库操作。

系统权限中带有ANY关键字的指明该权限的范围为数据库中的所有方案。

表7-2列举了一些常见的系统权限。

表7-2常见的系统权限

名称

说明

ALTERANYCLUSTER

修改任何聚簇

ALTERANYINDEX

修改任何索引

ALTERANYPROCEDURE

修改任何过程

ALTERANYROLE

修改任何角色

ALTERANYTYPE

修改任何类型

ALTERANYTRIGGER

修改任何触发器

ALTERANYTABLE

修改任何表

ALTERANYSEQUENCE

修改任何序列

ALTERROLLBACKSEGMENT

修改回滚段

ALTERRESOURCECOST

修改资源代价

ALTERPROFILE

修改配置文件

ALTERDATABASE

修改数据库

ALTERSYSTEM

修改系统参数

ALTERUSER

修改用户

ALTERTABLESPACE

修改表空间

ALTERSESSION

修改会话

ANALYZEANY

分析任何数据库对象

ANALYZEANYDICTIONARY

分析任何数据库字典

AUDITANY

审计任何数据库对象

BACKUPANYTABLE

备份任何表

CREATE[ANY]CLUSTER

创建聚簇

CREATE[ANY]TABLE

创建表

CREATE[ANY]INDEX

创建索引

CREATE[ANY]PROCEDURE

创建过程

CREATE[ANY]SEQUENCE

创建序列

CREATE[ANY]SYNONYM

创建同义词

CREATE[ANY]TRIGGER

创建触发器

CREATE[ANY]TYPE

创建类型

CREATE[ANY]VIEW

创建视图

CREATEROLE

创建角色

CREATESESSION

创建会话

CREATETABLESPACE

创建表空间

CREATEUSER

创建用户

DEBUGANYPROCEDURE

调试任何过程

DELETEANYTABLE

删除任何表

DROPANYCLUSTER

删除任何聚簇

DROPANYINDEX

删除任何索引

DROPANYPROCEDURE

删除任何过程

DROPANYROLE

删除任何角色

DROPANYSEQUENCE

删除任何序列

DROPANYSYNONYM

删除任何同义词

DROPANYTABLE

删除任何表

DROPANYTRIGGER

删除任何触发器

DROPANYTYPE

删除任何类型

DROPANYVIEW

删除任何视图

DROPTABLESPACE

删除表空间

DROPPROFILE

删除配置文件

DROPUSER

删除用户

EXCUTEANYPROCEDURE

执行任何过程

FLASHBACKANYTABLE

闪回任何表

GRANTANYPRIVIEGE

授予任何系统权限

GRANTANYROLE

授予任何角色

IMPORTFULLDATABASE

导入全库

INSERTANYTABLE

插入任何表

LOCKANYTABLE

锁定任何表

RESTRICTEDSESSION

限制会话

SELECTANYDICTIONARY

查询任何数据字典

SELECTANYSEQUENCE

查询任何序列

SELECTANYTABLE

查询任何表

SELECTANYTRANSACTION

查询任何事务

SYSDBA

系统管理员权限

SYSOPER

系统操作员权限

UPDATEANYTABLE

修改任何表

UNLIMITEDTABLESPACE

无限表空间限额

其中,使用带有ANY关键字的系统权限,可以使用户在数据库中的任何模式中创建对象。

如CREATEANYTABLE系统权限允许拥有该系统权限的用户为数据库中的任何模式创建表。

7.2.2对象权限

对象权限指在特定数据库对象上执行某项操作的能力。

与系统权限相比,对象权限主要指在Oracle对象上能够执行的操作,如查询、插入、修改、删除、执行等。

Oracle对象主要包括表、视图、聚簇、索引、序列、快照、过程、函数、包等。

不同的Oracle对象具有不同的对象权限,如表具有插入的对象权限,而序列却没有,而序列具有的执行对象权限,而表却没有。

相对于数量众多的系统权限,对象权限相对较少。

表7-3列出了常用的Oracle对象及其相应的对象权限。

表7-3常用的Oracle对象及其相关联的对象权限

类型

视图

序列

过程/函数/包

SELECT

*

*

*

INSERT

*

*

UPDATE

*

*

DELETE

*

*

EXECUTE

*

ALTER

*

*

INDEX

*

REFERENCES

*

其中,表中注有“*”的表示该Oracle对象具有相关联的对象权限。

7.2.3授予和撤销系统权限

创建用户后,如果没有为用户授予相应的权限,用户是不能对数据库进行操作的,甚至不能登录到数据库上。

所以必须为用户授予一定的系统权限。

在SQL命令中,使用GRANT语句授予权限,使用REVOKE语句撤销权限。

1.授予系统权限

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

GRANT{系统权限列表|角色}TO{用户名|角色|PUBLIC}[WITHADMINOPTION]

其中,PUBLIC指授予数据库中的所有用户,WITHADMINOPTION选项将使得该用户有能力将其权限再授予其他用户。

下面的语句授予LOTUS用户具有建立表、建立视图、建立索引的权限。

SQL>GRANTCREATETABLE,CREATEVIEW,CREATEINDEXTOLOTUS;

下面的语句授予LOTUS用户具有建立表的系统权限,同时允许LOTUS用户管理建立表的系统权限。

SQL>GRANTCREATETABLETOLOTUSWITHADMINOPTION;

下面的语句授予数据库中的所有用户使用无限表空间的权限。

SQL>GRANTUNLIMITEDTABLESPACETOPUBLIC;

2.撤销系统权限

对于一般数据库用户,授予过高的系统权限可能给Oracle数据库系统带来安全问题,作为DBA,应该经常了解当前数据库用户的权限分配情况,并撤销一些不必要的系统权限。

撤销系统权限的数据库用户不必是最初授予系统权限的用户,任何具有ADMINOPTION权限的数据库用户都可以撤销其他用户的系统权限。

另外,在撤销系统权限时,使用WITHADMINOPTION选项而获得系统权限的用户不受影响。

撤销系统权限的基本语法如下。

REVOKE{系统权限列表|角色}FROM{用户名|角色|PUBLIC}

下面的语句撤销LOTUS用户的具有建立表、视图、索引的权限。

SQL>REVOKECREATETABLE,CREATEVIEW,CREATEINDEXFROMLOTUS;

下面的语句撤销数据库中的所有用户使用无限表空间的权限。

SQL>REVOKEUNLIMITEDTABLESPACEFROMPUBLIC;

如要在OEM中对用户授予和撤销系统权限,可以在创建用户或修改用户时完成。

在创建用户时系统权限的设置方法详见7.1.1节。

7.2.4授予和撤销对象权限

1.授予对象权限

对象权限由该对象的拥有者为其他用户授权,非对象的拥有者不能将对象权限授予其他用户,即使是数据库管理员也不能为其他用户所属的对象授权。

与授予系统权限一样,授予对象权限也用到GRANT语句,基本语法如下:

GRANT{对象权限列表|ALL}ON[模式名.]数据库对象TO{用户名|角色|PUBLIC}

[WITHADMINOPTION]

其中,对象权限列表指选择、插入和删除等,WITHADMINOPTION选项的含义与授予系统权限中的含义相同。

下面的语句表示授予LOTUS用户具有查询、修改、删除STUDENT表的对象权限。

SQL>GRANTSELECT,UPDATE,DELETEONSTUDENTTOLOTUS;

下面的语句表示授予LOTUS用户具有对STUDENT表所有的操作权限,并且可以把获得的对象权限再授予其他用户。

SQL>GRANTALLONSTUDENTTOLOTUSWITHADMINOPTION;

2.撤销对象权限

与撤销系统权限一样,撤销对象权限也用到REVOKE语句,基本语法如下。

REVOKE{对象权限列表|ALL}ON[模式名.]数据库对象FROM{用户名|角色|PUBLIC}

[CASCADECONSTRAINTS][FORCE]

其中,CASCADECONSTRAINTS选项将会导致用REFERENCES权限定义的相关的完整性约束被删除,FORCE选项将废除用户定义的对象类型的EXECUTE权限被删除,并撤销依赖于这些对象类型的表格。

在撤销对象权限时,使用WITHADMINOPTION选项而获得对象权限的用户会受到影响,即同

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

当前位置:首页 > 考试认证 > 财会金融考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1