当前位置:文档之家› oracle安全机制

oracle安全机制

Oracle安全机制安全性是评价一个数据库产品的重要指标,直接决定了数据库的优劣。

Oracle数据库采用一系列的安全控制机制,以保证数据库的安全性。

Oracle数据库在3个层次上采取安全控制机制。

(1)系统安全性:在系统级别上控制数据库的存取和使用机制,包括有效的用户和口令、判断用户是否被授予权限可以连接数据库、用户创建数据库对象时可以使用的表空间大小、用户的资源限制、是否启动数据库的审计功能、用户可以进行哪些操作系统等。

(2)数据安全性:在数据库模式对象级别上控制数据库的存取和使用机制,包括用户可以存取的模式对象以及在该对象上可以进行的操作等。

用户要对某个模式对象进行操作,必须具有该对象相应的对象权限。

(3)网络安全性:oracle数据库是网络数据库,因此网络数据库传输的安全性至关重要,主要包括登陆助手、目录管理、标签安全性等。

Oracle通过分发Wallet、数字证书、SSL安全套接字和数据秘钥等办法来确保网络数据传输的安全性。

一、系统安全方面采取的安全机制包括用户管理、资源限制和口令管理、权限管理、角色管理、审计、利用OEM进行安全管理。

1、用户管理用户是数据库的使用者和管理者,Orcle数据库通过设置用户及其安全属性来控制用户对数据库的访问和操作。

用户管理是Oracle数据库安全管理的核心和基础。

Oracle数据库中的用户分为两类,一类是创建数据库时系统与定义的用户,而预定义的用户根据作用不同又可以分为三类:1、管理员用户,2、示例方案用户,3、内置用户;另一类是根据应用需要由DBA创建的用户。

可以通过查询数据字典视图dba_users,查看当前数据库中所有用户信息。

如下图所示显示open的用户是已经开启的用户,显示expired & locked的用户是已经过期或是锁定的用户1.1用户属性为了防止非授权用户对数据库进行操作,在创建数据库用户时,必须使用安全属性对用户进行限制。

用户的安全属性包括以下几个方面:●用户名:在同一数据库中,用户名必须唯一。

并且用户名不能与角色名相同。

●用户身份认证:Oracle数据库采用了多种用户身份认证方式,例如数据库身份认证、外部认证、以及全局认证。

●默认表空间:用户创建数据库对象时,如果没有显示地指出该对象存储在哪个表空间,系统会自动将该数据库对象存储在当前用户的默认表空间。

(表空间:Oracle数据库在逻辑上可以划分为一系列的区域,每一个区域称为一个表空间。

表空间是Oracle数据库最大的逻辑存储结构,由一系列段构成。

Oracle数据库对象就是以段的方式从表空间中获取存储空间的。

)●临时表:保存临时数据信息的表。

●表空间配额:表空间配额限制用户在永久空间中可以使用的存储空间的大小。

●概要文件:从会话级和调用级两个层次限制用户对数据库资源的使用,同时设置用户的口令管理策略。

●设置用户的默认角色:通过设置默认角色,可以禁止或激活用户所具有的角色。

●账户状态:创建用户的同时,可以设定用户的初始状态,包括用户口令是否过期以及账户是否锁定等1.2创建用户如上图所示,创建用户chen 采用数据库认证,口令为chen ,默认表空间为users 该表空间配额为10MB ,默认临时表空间为temp ,初始状态不锁定。

如上图所示,创建用户如果不授权,该用户不能做任何操作,即便是连接数据库。

只有给用户授予了create session 系统权限后,用户才可以连接数据库。

使用系统管理员登陆,授予用户chen 权限,才能使用户chen连接数据库。

如果口令设置为过期状态,即首次连接数据库时需要修改口令。

1.3用户身份认证◎数据库身份认证将数据库的用户名与口令都保存在数据库内部,且口令以加密方式存储。

当用户练级数据库时,需要提供用户名与口令信息,通过数据库认证后才能登陆。

◎外部身份认证用户账户由oracle数据库管理,但口令管理和身份验证由外部服务来完成。

◎全局身份认证采用oracle数据库的高级安全组件,利用LDAP目录服务器集中管理用户信息。

当用户试图建立与数据库的连接时,oracle利用网络中的目录服务器中的信息对用户进行身份认证。

1.4修改用户alter user user_name [identified][by password][…][accountlock|unlock]1.5删除用户drop user username [cascade];1.6 查询用户select username,account_status … from dba_users;忘记密码的方法:打开cmd,输入sqlplus /nolog,回车;输入“conn/ as sysdba”;输入“alter user sys identified by 新密码”,注意:新密码最好以字母开头,否则可能出现错误Ora-00988。

有了这个方法后,只要自己对oracle服务器有管理员权限,不记得密码的时候就可以随意修改密码了。

sqlplus /nolog,conn /as sysdba 之所以能够登录,在于oracle登录时的身份认证方式。

oracle在登录时,有三种身份认证方式:操作系统身份认证、密码文件认证、数据库认证。

而conn /as sysdba是属于操作系统认证。

为什么这样说呢?你当前电脑开机时登录的用户,也就是进入操作系统的用户,例如是gooooal,它在你电脑的ora_dba组中。

可以在“我的电脑”单击右键,找到“管理”,选择“本地用户和组”,发现有一个组叫“ora_dba”,双击它,看到成员列表中“gooooal”。

也就是在conn /as sysdba,oracle会进行操作系统验证,发现你当前登录的用户就属于ora_dba组,因此才可以登录成功。

你可以把ora_dba组中的“gooooal”用户删除,再conn /as sysdba,就发现进不去了。

解决用户sys任意密码可以登录的问题:1、sys是Oracle的一个很特殊的用户,它只能按sysdba和sysoper身份登入,也就是说只要按以上两种身份登入,都是sys用户,表面上输入的用户名都是无效的。

任何其它用户只能按Normal身份登入。

2、sys用户的合法认证有两种方式:一是操作系统认证方式,二是数据库口令认证方式。

如果你登入的操作系统是Oracle用户组,那么直接通过操作系统认证连接到数据库,没有必要口令来认证。

所以你随便输入一个口令都可以的。

2 资源限定与口令管理在oracle数据库中,用户对数据库和系统资源使用的限制以及对用户口令的管理是通过概要文件(profile)实现的。

概要文件是oracle数据库安全策略的重要组成部分。

每个数据库必须具有一个概要文件。

概要文件不是一个物理文件,而是存储在sys模式的几个表中的信息的集合。

这些表是在创建数据库运行sql.bsq脚本时,调用denv.bsq脚本创建的,包括profile$表、profname 表、resource_map表、resource_cost表等。

2.1资源限制的级别概要文件通过对一系列资源管理参数的设置,从会话级和调用级两个级别对用户使用资源进行限制。

会话级资源限制是对用户在一个会话过程中所能使用的资源总量进行限制,而调用级资源限制是对一条SQL语句在执行过程中所能使用的资源总量进行限制。

2.2 资源限制的类型通过设置通过设置概要文件中的参数值,可以从下列几个方面限制用户对数据库和系统资源的使用。

▼ CPU使用时间:在一个会话或一个调用过程中使用CPU的总量。

▼逻辑读:在一个会话或一个调用过程中读取物理磁盘和逻辑内存数据块的总量▼每个用户的并发会话数,即一个用户最多同时开启会话的数量。

▼用户连接数据库的最长时间。

▼私有SQL区和PL/SQL区的总量。

2.3 启用或停用资源限制与口令管理ALTER SYSTEM SET resource_limit=TRUE/FALSE;2.3.1 口令管理参数介绍Oracle数据库概要文件中用于口令管理的参数包括以下:① FAILED_LOGIN_ATTEMPTS:限制用户在登陆oracle数据库允许失败的次数。

②PASSWORD_LOCK_TIME:设定登陆失败后,账户锁定时间。

③PASSWORD_LIFE_TIME:设置口令的有效天数。

④PASSWORD_GRACE_TIME:用于设定提示口令过期的天数。

⑤PASSWORD_REUSE_TIME:指定一个用户口令被修改后,必须经过多少天才可以重新使用该口令。

⑥PASSWORD_REUSE_MAX:指定一个口令被重新使用前,必须经过多少次修改。

⑦PASSWORD_VERIFY_FUNCTION:设置口令复杂性校验函数。

2.4 创建资源限制的概要文件(上次不成功的原因,sessions写成了session,还有per写成了pre)1如图:创建一个名为res_profile的概要文件,要求每个用户最多可以创建2个并发会话,每个会话持续时间最长为60min,会话的最长连续空闲时间为20min,每个会话的私有SQL区为100KB,每个SQL语句占用CPU时间总量不超过10s.2 将概要文件指定给用户rfAlter user rf profile res_profile3 将资源管理激活ALTER SYSTEM SET RESOURCE_LIMIT=TRUE scope=both;4如下图,用户rf只能创建2个并发会话,创建第3个时出现错误:超出了限定范围2.5 创建口令管理的概要文件SQL>create profile pwd_profile limitFailed_login_attempts 4 password_lock_time 10;2.6 将概要文件分配给用户将该概要文件指定给普通用户rf,用户连续登陆四次失败,锁定账户,10天后自动解锁。

用管理员账号解锁用户rf。

2.7 修改概要文件例子:SQL>alter profile pwd_profile limit password_life_time 10;将用户口令设置有效期为10天例子:SQL>drop profile pwd_profile cascade;删除概要文件。

例子:SQL>select * from dba_profiles order by profile;查询数据库所有概要文件的参数设置。

3权限管理Oracle数据库使用权限俩控制用户对数据库的访问和用户在数据库中所能执行的操作。

用户在数据库中可以执行什么样的操作,以及可以对哪些对象进行操作,完全取决于该用户拥有的权限。

控制Oracle数据库访问的权限类型有两种:系统权限system privilege和对象权限Object privilege(方案对象)。

相关主题