Oracle数据库安全管理
- 格式:doc
- 大小:1.29 MB
- 文档页数:31
编者按: 验证口令,获得访问授权,这是目前最常用的访问控制手段,Oracle数据库也采用这样的安全策略。
在这一策略中,口令的管理是关键,然而要做好这项工作,既保证数据的安全也保证用户使用方便却并非易事。
在Oracle数据库中,若要访问数据,必须先具有该数据库的一个账户。
这个访问可以是直接访问(通过一个数据库的用户连接)或间接访问(通过在数据库链接中预设权限的访问)。
每个账户必须有一个与其相关的口令,一个数据库账户可以连接到一个操作系统账户上。
口令是在创建用户账户时为每一用户设置的,并可在该账户创建后对它们进行变更。
用户变更账户口令的能力受他访问工具权限的限制。
数据库以加密的形式将口令存储在一个数据字典表中。
如果账户直接与操作系统账户相关,就可以旁路口令检查。
在Oracle 8i中,口令可以无效。
数据库管理员可以建立能重复使用口令的条件(通过一个数据库口令历史设置值),也可以使用环境文件为口令制定标准,如最小长度,或如果连续多次与账户连接不成功,就可以自动锁定账户。
环境文件可以使用环境文件来限制用户能使用的系统和数据库资源,并管理口令限制。
如果数据库中没有创建环境文件,将使用缺省环境文件(Default)。
缺省环境文件对于所有用户资源没有限制,表1列出了可以通过环境文件限制的资源。
(注: PASSWORD_REUSE_MAX和PASSWORD_REUSE_TIME互不相容,如果其中一个资源设置成一个值,另一个必须设置成Unlimited。
)如表1所示,许多资源都可以被限制,在用户超过资源限制前不会发生任何动作,一旦到达限值, SQL语句就被停止。
环境文件是通过“create profile”命令创建的,可以用“alter profile”命令修改。
下例所示的“alter profile”命令用于修改现有的环境文件。
在这个例子中,数据库的缺省环境文件被修改成允许最大空闲时间为1小时:alter profile DEFAULT limit idle_time 60;在Oracle 8i中,可以使用环境文件来管理口令的终止、重新使用和复杂性。
Oracle数据库安全管理探讨作者:吕永国来源:《科学导报·学术》2020年第48期摘要:随着现代信息时代的到来,生成的数据越多越快。
很多数据被保存在数据库里面,变成一种数字资产。
企业和组织机构运用数据库管理系统操作和维护数据。
考虑到数据库存放数据的重要性和私密性,确保数据库信息安全非常重要。
本文详细解析Oracle数据库的安全体系机制,并讨论一些对数据库可能的攻击及其应对的策略。
关键词:数据库管理系统;身份验证;权限管理;数据加密;数据库审核1.Oracle数据库安全机制1.1多种身份验证Oracle数据库提供多种身份验证的方式,满足客户不用的业务需求,例如操作系统认证、网络认证、数据库身份验证、多层身份验证等方式。
客户可以根据实际系统安全要求,对上述描述方法进行任意组合,加强身份验证功能。
这些数据库的高级安全技术,能进一步提升登录机制的安全级别。
比如网络身份认证机制,Oracle支持密码技术的第三方身份网络认证服务,如Kerberos或Sesame等[2]。
同时数据库自身包含有Oracle Wallet manager,Oracle EnterpriseSecurity Manager等基础结构组件。
支持基于公钥密码学的身份验证系统,向用户客户端颁发数字证书,客户端可以使用它们向企业数据库服务器进行身份验证。
1.2 权限管理Oracle授权方式能很好满足不同等级的用户需求。
它主要在两个方面进行授权,一个是用户的访问或者操作应用上面的各种限制,另外一个是允许某些用户访问,处理或者更改数据。
在用户资源限制上面,Oracle通过允许创建数量众多的概要文件,这些文件可以精确控制每个用户使用系统的资源数量,包含CUP使用時间、连接会话的数量、逻辑输入输出次数的限制和空闲时间等控制[3]。
对于Oracle这种大型多用户数据库系统,昂贵的系统资源控制非常有必要。
一个或者多个用户过多的消耗资源,会影响到其他的数据库用户正常使用,进而影响到整个数据库性能。
Oracle数据库安全配置基线
简介
本文档旨在提供Oracle数据库的安全配置基线指南,以帮助确保数据库的安全性。
通过按照以下步骤进行配置,可以减少潜在的安全威胁和风险。
配置步骤
以下是Oracle数据库安全配置的基线步骤:
1. 安装最新的数据库补丁:确保在安装数据库之前,先安装最新的补丁程序,以修复已知的安全漏洞。
2. 禁用默认的系统帐户:在部署数据库之前,禁用默认的系统帐户(如SYSTEM、SYS、SYSMAN等),并创建自定义的管理员帐户。
3. 启用密码复杂性检查:使用强密码策略,确保数据库用户的密码具备足够的复杂性和强度。
4. 实施账户锁定策略:设置账户锁定策略,限制登录失败的次数,以防止暴力。
5. 限制数据库访问权限:核实数据库用户的访问权限,仅赋予他们所需的最低权限,以限制潜在的恶意操作。
6. 启用审计功能:启用Oracle数据库的审计功能,记录和监控数据库的所有活动,便于发现潜在的安全威胁。
7. 启用网络加密:使用SSL/TLS等加密协议,确保数据库与客户端之间的通信是安全和加密的。
8. 实施备份和恢复策略:定期备份数据库,并测试恢复过程,以防止数据丢失和灾难恢复。
9. 定期审查和更新安全配置:定期审查数据库的安全配置,并根据最新的安全标准和最佳实践的推荐,更新配置以提高安全性。
总结
通过遵循以上基线配置步骤,可以帮助提高Oracle数据库的安全性。
然而,在实际应用中,还应根据具体情况进行定制化的安全配置,并持续关注新的安全威胁和漏洞,及时进行更新和升级。
1.创建两个用户Auser和Buser,要求如下:采用数据库认证方式,密码自定,默认表空间为users表空间,临时表空间为temp表空间,在users表空间的使用限额为15MB,并设置口令过期。
2.锁定用户Auser
3.查看当前数据库所有的用户账户信息、资源文件及状态
4.将用户Auser解锁,将Auser用户在表空间users上的空间配额改成无限制
5.授予用户Auser连接数据库、创建表、创建视图的系统权限,并验证。
6.授予用户Auser在方案对象scott的表emp上插入、删除的对象权限,且该用户能将权限授予其它用户,并验证。
7.撤销Auser在表emp上的delete对象权限
8.创建角色SALESROLE,并指定角色需要口令验证。
9.给角色SALESROLE授予对emp表的select、update权限。
10、将角色SALESROLE授予Auser用户,且用户Auser能将此角色授予其它
人。
11、以Auser用户登录,将角色SALESROLE授予用户Buser。
分别尝试使用用户system 撤销用户Auser和Buser的角色,请观察撤销用户Auser的角色后用户Buser是否还拥有该角色?
所以撤销用户Auser的角色后,Buser还拥有此角色。
12、以用户Auser登录,将在方案对象scott的表emp上插入、删除的对象权限授予用户Buser 。
分别尝试使用用户system撤销用户Auser和用户Buse的对象权限,请观察撤销用户Auser的对象权限后用户Buser是否还拥有对象权限。
从查询结果可以看出,撤销用户Auser的对象权限后用户Buser不拥有对象权限。
ORACLE数据库管理员基础第九章安全管理在建立应用系统的各种对象(包括表、视图、索引等)前,就得先确定各个对象与用户的关系。
也就是说,哪些用户需要建立,哪些用户都充当什么样的角色,他们应该有多大权限等。
下面介绍基本的安全管理方面的内容,更详细的内容在DBA 资料里介绍。
9.1 CREATE USER 命令CREATE USER username IDENTIFIED BY passwordOr IDENTIFIED EXETERNALLYOr IDENTIFIED GLOBALLY AS ‘CN=user’[DEAFULT TABLESPACE tablespace ][TEMPORARY TABLESPACE tablespace][QUOTA [integer K[M]][UNLIMITED] ON tablespace[,QUOTA [integer K[M]][UNLIMITED] ON tablespace[PROFILES profile_name][PASSWORD EXPIRE][ACCOUNT LOCK or ACCOUNT UNLOCK]CREATE USER username 用户名IDENTIFIED BY password 用户口令IDENTIFIED BY EXETERNALLY 用户名在操作系统下验证,这个用户名必须与操作系统中所定义的用户相同。
IDENTIFIED GLOBALLY AS ‘CN=user’ 用户名是ORACLE 安全域中心服务器来验证,CN 名字标识用户的外部名。
[DEAFULT TABLESPACE tablespace ] 缺省的表空间[TEMPORARY TABLESPACE tablespace] 缺省的临时表空间[QUOTA [integer K[M]][UNLIMITED] ON tablespace 允许使用k[m]字节[,QUOTA [integer K[M]][UNLIMITED] ON tablespace[PROFILES profile_name] 资源文件的名字[PASSWORD EXPIRE] 立即将口令设成过期状态,用户在登录进入前必须修改口令。
谈关于Oracle数据库安全性管理摘要:数据库的安全问题直接关系到的信息数据高效,准确,完整传输的基础前提,Oracle数据库以其稳定性,优异的性能和高效率等特点被各大行业广泛使用。
但在实际应用过程中,存在很多安全隐患。
本文根据Oracle数据库的功能和实际使用情况,简要分析数据库安全技术,并提出数据库安全解决方案。
关键词:Oracle数据库;安全性;管理Abstract: Information database security issues directly related to the efficient, accurate, complete the basic premise of transmission, Oracle database with its stability, widely used features excellent performance and high efficiency are the major industry. But in practical application process, there are many security risks. In this paper, according to the Oracle database function and the actual use, the brief analysis of database security technology, and put forward the solution of security database.Key words: Oracle database; security; management数据库安全一直是数据库管理员关注的焦点,数据库的数据丢失和从未经授权被非法用户入侵已使得数据库管理员心力交瘁。
Oracle数据库在正常情况下能够保证数据的安全和系统的稳定,为用户提供正确的数据,但由于计算机系统存在的安全问题,或者由于数据库用户出现对系统的误操作,加之Oracle数据库自身存在的一些漏洞,都会影响到数据库中数据的正确性和安全性,造成数据库的破坏和其中数据的丢失,严重的甚至使整个系统陷入瘫痪状态。
第11章Oracle安全管理11.1 Oracle 9i的安全保障机制11.2 创建和管理用户11.3 权限与角色11.4 概要文件11.5 审计11.1.1 安全性内容11.1.2 安全性策略11.1.3 数据库的存取控制
11.1 Oracle9i的安全保障机制11.1.1安全性内容1. 系统安全性系统安全性是指在系统级控制数据库的存取和使用的机制,包含:⑴有效的用户名/口令的组合。⑵一个用户是否授权可连接数据库。⑶用户对象可用的磁盘空间的数量。⑷用户的资源限制。⑸数据库审计是否是有效的。⑹用户可执行哪些系统操作。11.1.1安全性内容2. 数据安全性在Oracle 9i多用户数据库系统中,数据安全性包括下列内容:⑴防止非授权用户对数据库的数据进行存取操作,防止不合法的使用所造成的数据泄露、更改或破坏。⑵防止非授权的对模式对象的存取操作,用户要存取对象必须有相应的权限授给该用户。⑶控制磁盘使用。⑷控制系统资源使用。⑸审计用户动作。11.1.1安全性内容3. Oracle 9i的安全机制Oracle 9i利用下列安全机制管理数据库安全性:⑴数据库用户和模式⑵权限⑶角色⑷存储设置和空间份额⑸资源限制⑹审计11.1.2安全性策略1. 系统安全性策略⑴管理数据库用户⑵用户身份确认⑶操作系统安全性2. 用户安全性策略⑴一般用户的安全性⑵终端用户的安全性11.1.2安全性策略3. 数据库管理者安全性策略⑴保护作为sys和system用户的连接⑵保护管理者与数据库的连接⑶使用角色对管理者权限进行管理4. 应用程序开发者的安全性策略⑴应用程序开发者和他们的权限⑵应用程序开发者的环境⑶应用程序开发者的空间限制11.1.3数据库的存取控制1. 用户鉴别为了防止非授权的数据库用户的使用,Oracle提供三种确认方法:操作系统确认,Oracle数据库确认和网络服务确认。2. 表空间设置和定额关于表空间的使用有几种设置选择:用户的缺省表空间用户的临时表空间数据库表空间的空间使用定额11.1.3数据库的存取控制3. 用户资源限制和环境文件用户可用的各种系统资源总量的限制是用户安全域的部分。利用显式地设置资源限制,安全管理员可防止用户无控制地消耗宝贵的系统资源。资源限制是由环境文件管理。一个环境文件是命名的一组赋给用户的资源限制。另外Oracle为安全管理员在数据库提供是否对环境文件资源限制的选择。11.1.3数据库的存取控制4. 环境文件用户环境文件是指定资源限制的命名集,可赋给Oracle数据库的有效的用户。利用用户环境文件可容易地管理资源限制。在许多情况中决定用户的环境文件的合适资源限制的最好的方法是收集每种资源使用的历史信息。11.2.1 在OEMC环境中创建用户11.2.2 使用SQL命令创建用户11.2.3 在OEMC环境中管理用户11.2.4 使用SQL命令管理用户
第10章Oracle数据库安全管理学习目标:●了解Oracle的安全机制。
●掌握用户的概念和管理方法。
●掌握权限和角色的概念和管理方法。
●了解概要文件的概念和应用方法。
安全性对于任何一个数据库管理系统来说都是至关重要的。
数据库中通常存有大量的数据,任何非法的访问和侵入都可能会造成无法挽救的损失。
Oracle数据库提供了严格、可靠的安全性保护和使用效率,这是其他数据库无法相比的。
10.1 安全管理概述数据共享是数据库的主要特点之一,特别是基于网络的数据库,保证数据安全则更加重要。
Oracle数据库安全性可以分为以下几个层次:系统安全性:系统级控制数据的存取和使用的机制,包括数据库用户和方案、存储设置、数据库审计、数据库系统跟踪等。
数据安全性:实体级控制数据库的存取和使用的机制,包括系统权限、对象权限、存期资源控制等。
网络安全性:Oracle数据库主要面向网络提供服务,网络软件的安全性和网络数据传输至关重要。
它主要包括登录助手、目录管理等集成工具,并通过分发Wallet、数字证书、SSL 安全套接字和数字密钥来保证网络数据传输的安全。
在本章我们着重介绍系统安全性及数据安全性,主要涉及的内容有:用户管理、权限管理及角色管理等。
10.2 用户为了使用Oracle,我们需要为自己的数据建立相应的用户账户,这是一项基础而重要的工作。
在实际应用中,我们应该避免使用SYS 、SYSTEM 等管理账户。
下面介绍如何创建和管理用户。
10.2.1 用户和方案用户(User):也称为账户,是定义在数据库中的对象,是Oracle数据库的基本访问控制机制。
当连接到Oracle数据库时,默认情况下必须要提供用户名和口令。
只有输入了正确的用户名和口令,才能连接到数据库。
方案(Schema):是用户所拥有的数据库对象的集合。
在Oracle数据库中对象是以用户来组织的,用户与方案时一一对应得关系,并且名称相同。
例如:SYSTEM用户拥有SYSTEM 方案的所有对象,而SCOTT用户拥有SCOTT方案的所有对象。
当访问数据库对象时,注意以下几点:●同一个方案中不能存在同名对象,但不同方案下可以有同名对象。
●用户可以直接访问其方案对象,如果要访问其他方案对象,要求必须有对象权限。
●用户访问其他方案对象,需添加方案名作前缀。
●SYS方案拥有数据库目录的基本表和视图,这些基本表和视图对Oracle数据库是至关重要的。
Oracle系统为保持数据字典的一致性,SYS方案的表不能被任何用户或管理员修改。
10.2.2 创建用户1. 创建用户创建用户操作一般由DBA用户来完成,如果以其他用户身份创建用户,要求该用户具有CREATE USER的系统权限。
创建用户的基本语法如下:CREATE USER <username> IDENTIFIED BY <pwd>DEFAULT TABLESPACE <tablespace_name>TEMPORARY TABLESPACE <tablespace_name>QUOTA <n>MB ON <tablespace_name>PASSWORD EXPIRE;其中:●username:所创建用户名;●INDENTIFIED BY:指定用户密码;●DEFAULT TABLESPACE:指定用户默认的表空间;●TEMPORARY TABLESPACE:指定用户临时表空间;●QUOTA:指定表空间配额,用来设置用户对象在表空间上可占用的最大空间;●PASSWORD EXPIRE:指定口令到期后,强制用户在登录时修改口令。
【例10.1】在Student数据库中创建名为“my_user1”的用户帐户。
代码如下:CONN SYSTEM/***CREATE USER my_user1IDENTIFIED BY aaa;图10.1 创建用户“my_user1”注意:●初始创建的用户没有任何权限,不能执行任何数据库操作。
●如果不指定DEFAULT TABLESPACE,Oracle会将数据库默认表空间作为用户的默认表空间。
●如果不指定TEMPORARY TABLESPACE,Oracle会将数据库默认临时表空间作为用户的临时表空间。
●如果不指定QUOTA子句,用户的表空间配额为0,这样用户没有在相应表空间上创建数据库对象的权限。
2. 用户授权用户授权的详细介绍见后面权限一节。
这里给my_user1用户分配CREATE SESSION 和CREATE TABLE权限。
【例10.2】为“my_user1”用户分配“CREA TE SESSION”,“CREATE TABLE”权限。
代码如下:GRANT CREATE SESSION ,CREATE TABLE TO my_user1;图10.2 为用户“my_user1”授权10.2.3 修改用户由于工作需要,DBA在管理数据库时可能需要修改用户帐户,如:修改密码;锁定帐户或解除账户锁定;修改用户的默认表空间或临时表空间;修改表空间配额等。
修改用户帐户使用ALTER USER命令。
3. 修改密码任何用户都可以修改自己的帐户密码,系统管理员可以重置其它用户账户。
【例10.3】将用户帐户“my_user1”密码修改为“abc”。
代码如下:ALTER USER my_user1 IDENTIFIED BY abc;图10.3修改用户my_user1的密码4. 锁定及解除账户锁定在管理数据库时,DBA可以根据需要锁定某些用户账户,临时取消这些账户的使用。
在Oracle系统中,在数据库安装期间,就创建了大量的用户帐户,默认情况下,许多账户是锁定的。
锁定及解除账户锁定的基本语法如下:ALTER USER <username>ACCOUNT [LOCK | UNLOCK];【例10.4】锁定用户帐户“my_user1”。
代码如下:CONN SYSTEM/***ALTER USER my_user1 ACCOUNT LOCK ;图10.4 锁定用户账户“my_user1”锁定该账户后,再以该账户连接数据库,提示不能连接到Oracle。
以同样的方法为该帐户解除锁定,并验证其有效性。
【例10.5】为系统帐户“SCOTT”解除锁定并进行数据库连接。
ALTER USER SCOTT ACCOUNT UNLOCK;CONN SCOTT/TIGER;图10.5 解除“SCOTT”帐户锁定并连接数据库5. 修改表空间配额表空间配额用于限制用户对象在表空间上可占用的最大空间。
如果没有为用户分配空间或分配空间为0,则该用户不能创建数据库对象,如创建表。
【例10.6】以“my_user1”用户登录数据库,创建“系部副本表”。
执行情况如下:图10.6 以“my_user1”用户创建表【例10.7】以“SYSTEM”用户登录,修改用户“my_user1”的表空间配额,再以用户“my_user1”重新登录并创建“系部副本表”。
代码和执行情况如下:CONN SYSTEM/***ALTER USER my_user1DEFAULT TABLESPACE SYSAUXQUOTA 5M ON SYSAUX;图10.7修改表空间配额10.2.4 监视用户DBA可以通过动态性能视图来查看用户在数据库中的活动信息,限制用户对系统资源的使用,以保证数据库的运行安全。
【例10.8】查询动态性能视图V$SESSION,获取用户的会话信息。
图10.8 查看“V$SESSION”结构SELECT SID,SERIAL#,LOGON_TIME,USERNAME,MACHINEFROM V$SESSION;图10.9获取用户的会话信息其中:●SID和SERIAL#是会话的唯一标识。
●LOGON_TIME表示用户登录数据库的时间。
●USERNAME表示登录数据库的用户帐户。
●MECHINE表示用户帐户登录的计算机名。
注意:如果SID和SERIAL#不同,而相应的USERNAME相同,表示该用户帐户与数据库建立了两个连接会话。
【例10.9】中止会话标识为“131,10”的数据库会话连接。
ALTER SYSTEM KILL SESSION '131,10';图10.10终止用户的数据库会话注意:如果用户的会话被中止后,其所占用的系统资源将被释放。
10.2.5 删除用户删除用户操作一般由DBA用户来完成,如果以其他用户身份创建用户,要求该用户具有DROP USER的系统权限。
删除用户后,Oracle会从数据字典中删除用户、方案及其所有方案对象。
删除用户的基本语法如下:DROP USER username[CASCADE];其中:●CASCADE:用来删除包含数据库对象的用户。
【例10.10】删除用户“my_user1”。
代码如下:DROP USER my_user1;图10.11删除用户“my_user1”注意:当前正在连接的用户是不能删除的。
如果确定要删除该用户,首先应终止用户会话,再进行删除。
10.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结果列表中选择要删除的用户名,单击“删除”按钮,进入“确认”页面,如果确定要删除用户,单击“是”按钮即可。
10.3 权限权限(Privilege)是Oracle数据库定义的执行某些操作的能力。
建立用户时,用户没有任何权限,也不能执行任何数据库操作。
如果用户要执行特定的操作,必须授予其一定的权限。
在Oracle数据库中,用户权限有两种:系统权限和对象权限。
10.3.1 系统权限系统权限是指在系统级控制数据库的存取和使用的机制。