第5章 Oracle 10G 安全机制.docx

上传人:b****8 文档编号:10880031 上传时间:2023-02-23 格式:DOCX 页数:15 大小:24.74KB
下载 相关 举报
第5章 Oracle 10G 安全机制.docx_第1页
第1页 / 共15页
第5章 Oracle 10G 安全机制.docx_第2页
第2页 / 共15页
第5章 Oracle 10G 安全机制.docx_第3页
第3页 / 共15页
第5章 Oracle 10G 安全机制.docx_第4页
第4页 / 共15页
第5章 Oracle 10G 安全机制.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

第5章 Oracle 10G 安全机制.docx

《第5章 Oracle 10G 安全机制.docx》由会员分享,可在线阅读,更多相关《第5章 Oracle 10G 安全机制.docx(15页珍藏版)》请在冰豆网上搜索。

第5章 Oracle 10G 安全机制.docx

第5章Oracle10G安全机制

第5章Oracle10G安全机制

数据库中的数据的安全性主要涉及到以下几个方面:

身份验证:

保证只有合法的用户才能登录并使用数据库。

访问控制:

即使是合法用户,也要控制用户对数据库对象的访问,拒绝非授权访问,防止信息泄密。

可审计性:

哪怕是非法用户的入侵行为和破坏行为也能跟踪,恢复数据。

语义保密性:

数据库中的数据以某种加密的形式存储,这样非法用户即使得到数据文件也无法利用。

用户帐号管理

创建用户帐号

创建用户的语法格式如下所示:

CREATEUSER用户名IDENTIFIEDBY口令

[DEFAULTTABLESPACE默认表空间]

[TEMPORARYTABLESPACE临时表空间]

[QUOTA[数值K|M]|[UMLIMITED]ON表空间名]

[PROFILE概要文件名]

[ACCOUNTLOCK]|[ACCOUNTUNLOCK]

•缺省表空间

–DEFAULTTABLESPACEtablename

•临时表空间

–TEMPORARYTABLESPACEtempname

•配额

–限制用户所能使用的存储空间的大小。

默认情况下,新建用户在任何表空间都不具任何配额

–QUOTA……ONtablename

•用户在临时表空间中不需要配额,在临时表空间中创建的所有临时段都属于SYS模式

用户的帐号有两种状态,DBA可以通过设置状态的方法使账户可用或不可用。

一.帐号锁定

锁定帐号可以使某个帐号不可用。

ALTERUSERusernameACCOUNTLOCK;

二.账户解锁

该状态下,帐号可以正常登陆。

ALTERUSERusernameACCOUNTUNLOCK;

创建用户示例

CREATEUSERtestIDENTIFIEDBYpwd

DEFAULTTABLESPACEUSERS

TEMPORARYTABLESPACETEMP

QUOTA5MONUSERS;

•注意

–新创建的用户并不能直接连接到数据库中,因为它不具有CREATESESSION系统权限,因此,在新建数据库用户后,通常需要使用GRANT语句为用户授予CREATESESSION权限

修改用户账号

修改用户账号的语法格式如下所示:

ALTERUSER用户名IDENTIFIEDBY口令

[DEFAULTTABLESPACE默认表空间]

[TEMPORARYTABLESPACE临时表空间]

[QUOTA[数值K|M]|[UMLIMITED]ON表空间名]

[PROFILE概要文件名]

[ACCOUNTLOCK]|[ACCOUNTUNLOCK]

删除用户账号

删除用户账号的语法格式如下所示:

DROPUSERusernameCASCADE;

其中CASCADE表示级联,即删除用户之前,先删除它所拥有的实体。

权限管理

权限是执行某一种操作的能力,在Oracle数据库中是利用权限来进行安全管理的,Oracle系统通过授予和撤销权限来实现对数据库安全的访问控制,这些权限可以分为两类:

系统权限:

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

如是否能启动、停止数据库。

是否能修改数据库参数等。

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

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

对象权限:

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

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

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

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

授予系统特权的语法如下:

GRANT{system_privilege|role}

TO{user|role|PUBLIC}

[WITHADMINOPTION];

•WITHADMINOPTION:

允许得到权限的用户将权限转授其他用户

•PUBLIC:

表示系统中所有用户(用于简化授权)

•系统权限授予时需要注意的几点:

Ø只有DBA才应当拥有ALTERDATABASE系统权限。

Ø应用程序开发者一般需要拥有CREATETABLE、CREATEVIEW和CREATEINDEX等系统权限。

Ø普通用户一般只具有CREATESESSION系统权限。

回收系统特权的语法如下:

REVOKE{system_privilege|role}

FROM{user|role|PUBLIC};

•注意事项

Ø多个管理员者授予用户同一个系统权限后,其中一个管理员回收其授予该用户的系统权限时,该用户不再拥有该系统权限。

Ø为了回收用户系统权限的传递性(授权时使用了WITHADMINOPTION子句),必须先回收其系统权限,然后再授予其相应的系统权限。

Ø如果一个用户获得的系统权限具有传递性(授权时使用了WITHADMINOPTION子句),并且给其他用户授权,那么该用户系统权限被回收后,其他用户的系统权限并不受影响。

•对象权限的授权

Ø语法结构

GRANTobj_priv_list|ALLON[schema.]object

TOuser_list|role_list

[WITHGRANTOPTION

Ø示例:

将scott模式下的emp表的SELECT、UPDATE、INSERT权限授予user1用户。

GRANTSELECT,INSERT,UPDATEONscott.emp

TOuser1;

•对象权限的回收

Ø语法结构

REVOKEobj_priv_list|ALLON[schema.]objectFROMuser_list|role_list;

•需要注意的几点

Ø多个管理员者授予用户同一个对对象权限后,其中一个管理员回收其授予该用户的对象权限时,不影响该用户从其他管理员处获得的对象权限。

Ø为了回收用户对象权限的传递性(授权时使用了WITHGRANTOPTION子句),必须先回收其对象权限,然后再授予其相应的对象权限。

Ø如果一个用户获得的对象权限具有传递性(授权时使用了WITHGRANTOPTION子句),并且给其他用户授权,那么该用户的对象权限被回收后,其他用户的对象权限也被回收。

角色概述

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

角色是权限管理的一种工具,即有名称的权限的集合。

权限和角色是密不可分的。

DBA可以利用角色来简化权限的管理。

Oracle数据库就借用了角色这种概念来实现这种权限管理的方法,达到简化权限管理的目的。

角色是对权限进行集中管理(授予、回收)的一种方法,它是一组相关权限的组合,即将不同的权限组合到一起就形成了角色。

•角色的概念

Ø所谓角色就是一系列相关权限的集合

创建角色语法格式如下所示:

CREATEROLE角色名[IDENTIFIEDBY口令];

进行角色授权格式如下所示

GRANT[权限]|[,]

TO[角色]|[PUBLIC]|[,]

[WITHADMINOPTION];

例题:

1.创建角色

CREATEROLEhigh_manager_role

CREATEROLEmiddle_manager_roleIDENTIFIEDBYmiddlerole;

CREATEROLElow_manager_roleIDENTIFIEDBYlowrole;

2.给角色授予权限。

GRANTCONNECT,CREATETABLE,CREATEVIEWTOlow_manager_role;

GRANTCONNECT,CREATETABLE,CREATEVIEWTOmiddle_manager_role;

GRANTCONNECT,RESOURCE,DBATOhigh_manager_role;

GRANTSELECT,UPDATE,INSERT,DELETEONscott.empTOhigh_manager_role;

3.把角色赋予用户:

(特别说明,授予角色不是实时的。

如下:

grantlow_manager_roletotestdb;

4.起用角色:

给用户赋予角色,角色并不会立即起作用。

(1)必须下次断开此次连接,下次连接才能起作用。

(2).或者执行命令setroletestrole

查询角色信息

•DBA_ROLES:

包含数据库中所有角色及其描述。

•DBA_ROLE_PRIVS:

包含为数据库中所有用户和角色授予的角色信息。

•USER_ROLE_PRIVS:

包含为当前用户授予的角色信息。

•ROLE_ROLE_PRIVS:

为角色授予的角色信息。

•ROLE_SYS_PRIVS:

为角色授予的系统权限信息。

•ROLE_TAB_PRIVS:

为角色授予的对象权限信息。

•SESSION_PRIVS:

当前会话所具有的系统权限信息。

•SESSION_ROLES:

当前会话所具有的角色信息。

角色类型

–系统预定义角色

–用户自定义角色

概要文件概述

概要文件(profile)是一个命名的资源限定的的集合,它是Oracle安全策略的重要组成部分。

利用概要文件,可以限制用户对数据库或者资源的使用,更多的是为用户设置口令策略。

通常情况下,可以按角色建立不同的概要文件,依据每个用户所属的角色为它分配不同的概要文件,而不用为每个用户创建单独的概要文件。

创建和分配概要文件

创建概要文件格式如下所示

CREATEPROFILE概要文件名LIMIT

CONNECT_TIME数值

IDLE_TIME数值

CPU_PER_CALL数值

CPU_PER_SESSION数值

LOGICAL_READS_PER_CALL数值

LOGICAL_READS_PER_SESSION数值

SESSIONS_PER_USER数值

COMPOSITE_LIMIT数值

PRIVATE_SGA数值

FAILED_LOGON_ATTEMPTS数值

PASSWORD_LIFE_TIME数值

PASSWORD_GRACE_TIME数值

PASSWORD_LOCK_TIME数值

PASSWORD_REUSE_TIME数值

PASSWORD_REUSE_MAX数值

PASSWORD_VERIFY_FUNCTION数值;

概要文件中参数

•资源限制参数

–CPU_PER_SESSION

用于指定每个用户的最大并发会话个数.

(单位:

百分之一秒))

–CPU_PER_CALL

限制每次调用(解析,执行或提取数据)可占用的最大CPU时间(单位:

百分之一秒))

–CONNECT_TIME--允许连接时间

任意一个会话连接时间限定在指定的分钟数内

–IDLE_TIME允许空闲时间

–SESSIONS_PER_USER

用户最大并行会话数(指定用户的会话数量

–LOGICAL_READS_PER_SESSION

读取数/会话(单位:

块)

–LOGICAL_READS_PER_CALL

限制每次调用的最大逻辑I/O次数.

–PRIVATE_SGA专用sga

–COMPOSITE_LIMIT

组合限制(单位:

单元)

•口令管理参数

–FAILED_LOGIN_ATTEMPTS

用于指定联系登陆的最大失败次数.

–PASSWORD_LOCK_TIME

用于指定帐户被锁定的天数

为了控制帐户锁定,必须首先执行CREATEPROFILE命令建立PROFILE,然后使用ALTERUSER命令将profile分配给用户.

CREATEPROFILElock_accoutLIMIT

FAILED_LOGIN_ATTEMPTS3

PASSWORD_LOCK_TIME10;

ALTERUSERdevepPROFILElock_account

如果建立PROFILE时没有提供PASSWORD_LOCK_TIME选项,将自动使用默认值(UNLIMITED),在这种情况下,需要DBA手工解锁.

ALTERUSERdevepUNLOCK;

PASSWORD_LIFE_TIME

口令有效期(单位:

天)

PASSWORD_GRACE_TIME

用于指定口令宽限期为了强制用户定期改变口令,二者必须同时设置.

CREATEPROFILEpassword_life_imeLIMIT

PASSWORD_LIFE_TIME10

PASSWORD_GRACE_TIME2;

–PASSWORD_REUSE_MAX

用于指定在重用口令之前口令需要改变的次数.(单位:

次)

–PASSWORD_REUSE_TIME

用于指定口令可重用时间(单位:

天)

–PASSWORD_VERIFY_FUNCTION

启用口令复杂函数

口令复杂性校验是指使用PL/SQL函数确保用户口令的有效性,从而加强用户使用复杂口令.安装oracle数据库时,oracle提供了sql脚本UTLPWDMG.SQL,该脚本用于建立系统口令校验函数VERIFY_FUNCTION,此口令校验函数实现了以下口令规则.口令不能少于4个字符,口令不能与用户名相同,口令至少包含一个字符,一个数字和一个特殊字符($,_,#,!

等)

需要注意,当建立系统口令校验函数VERIFY_FUNCTION时,必须以SYS用户运行SQL脚本utlpwdmg.sql.

建立系统口令校验函数VERIFY_FUNCTION,还会修改DEFAULT的其他口令管理选项.建立了VERIFY_FUNCTION函数后,如果在修改用户口令时口令不能满足改函数的规则,将显示错误信息.

如果要禁用口令校验函数,可以将PASSWORD_VERIFY_FUNCTION选项设置为NULL

•将概要文件分配给用户

–CREATEUSERuser5IDENTIFIEDBYuser4PROFILEres_profile;

–ALTERUSERuser5PROFILEpwd_profile;

•修改概要文件

–语法结构

ALTERPROFILEprofile_nameLIMITresource_parameters|

password_parameters;

–示例

ALTERPROFILEpwd_profileLIMITPASSWORD_LIFE_TIME10;

•删除概要文件

–语法结构:

DROPPROFILEprofile_nameCASCADE;

–示例:

DROPPROFILEpwd_profileCASCADE;

•查询概要文件

–USER_PASSWORD_LIMITS

–USER_RESOURCE_LIMITS

–DBA_PROFILES

审计

准备审计

showparameteraudit

(1)AUDIT_FILE_DEST

指示出审计的文件存放的路径信息

(2)audit_sys_operations

默认值是FALSE,如果开启审计功能,这个参数需要修改为TRUE

(3)AUDIT_TRAIL=NONE|DB|OS

       DB--审计信息记录到数据库中

       OS--审计信息记录到操作系统文件中

       NONE--关闭审计(默认值)

altersystemset

audit_sys_operations=TRUEscope=spfile;

修改参数audit_sys_operations为“TRUE”,开启审计的功能

altersystemsetaudit_trail=dbscope=spfile;

修改参数audit_trail为“db”,审计信息记录到数据库中

登录审计

操作审计

对象审计

对象审计

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

当前位置:首页 > 法律文书 > 调解书

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

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