1.数据库安全控制策略概述
安全性是评估一个数据库的重要指标,Oracle数据库从3个层次上采取安全控制策略:
系统安全性。在系统级别上控制数据库的存取和使用机制,包括有效的用户名与口令、是否可以连接数据库、用户可以进行哪些系统操作等;
数据安全性。在数据库模式对象级别上控制数据库的存取和使用机制。用户要对某个模式对象进行操作,必须要有操作的权限;
网络安全性。Oracle通过分发Wallet、数字证书、SSL安全套接字和数据密钥等办法来保证数据库的网络传输安全性。
数据库的安全可以从以下几个方面进行管理:
用户账户管理
用户身份认证方式管理。Oracle提供多种级别的数据库用户身份认证方式,包括系统、数据库、网络3种类型的身份认证方式
权限和角色管理。通过管理权限和角色,限制用户对数据库的访问和操作
数据加密管理。通过数据加密来保证网络传输的安全性
表空间设置和配额。通过设置用户的存储表空间、临时表空间以及用户在表空间上使用的配额,可以有效控制用户对数据库存储空间的使用
用户资源限制。通过概要文件设置,可以限制用户对数据库资源的使用
数据库审计。监视和记录数据库中的活动,包括审计所有的SQL语句、审计SQL权限、审计模式对象以及审计网络活动等。
接下来将对数据库安全管理方法进行一 一讨论。
2.用户管理
用户是数据库的使用者和管理者,Oracle通过设置用户及安全属性来控制用户对数据库的访问。Oracle的用户分两类,一类是创建数据库时系统预定义的用户,一类是根据应用由DBA创建的用户。
2.1 预定义用户
在oracle创建时创建的用户,我们称为预定义用户,预定义用户根据作用不同分为3类:
管理员用户:包括SYS,SYSTEM,SYSMAN,DBSNMP等。SYS是数据库中拥有最高权限的管理员,可以启动、关闭、修改数据库,拥有数据字典;SYSTEM是一个辅助的数据库管理员,不能启动和关闭数据库,但是可以进行一些管理工作,如创建和删除用户;SYSMAN是OEM的管理员,可以对OEM进行配置和管理;DBSNMP用户是OEM代理,用来监视数据库的。以上这些用户都不能删除。
示例方案用户:在安装Oracle或使用odbc创建数据库时,如果选择了”示例方案”,会创建一些用户,在这些用户对应的schema中,有产生一些数据库应用案例。这些用户包括:BI、HR、OE、PM、IX、SH等。默认情况下,这些用户均为锁定状态,口令过期。
内置用户:有一些Oracle特性或Oracle组件需要自己单独的模式,因此为他们创建了一些内置用户。如APEX_PUBLIC_USER、DIP等。默认情况下,这些用户均为锁定状态,口令过期。
此外还有2个特殊的用户SCOTT和PUBLIC,SCOTT是一个用于测试网络连接的用户,PUBLIC实际是一个用户组,数据库中任何用户都属于该用户组,如果要为数据库中的全部用户授予某种权限,只需要对PUBLIC授权即可。
2.2 用户属性
在创建用户时,必须使用安全属性对用户进行限制,用户的安全属性主要包括:
用户名:在同一个数据库中,用户名是唯一的,并且不能与角色名相同;
用户身份认证:Oracle采用多种方式进行身份认证,如数据库认证、操作系统认证、网络认证等;
默认表空间:用户创建数据库对象时,如果没有显式指明存储在哪个表空间中,系统会自动将该数据库对象存储在当前用户的默认表空间,在Oracle 11g中,如果没有为用户指定默认表空间,则系统将数据库的默认表空间作为用户的默认表空间;
临时表空间:临时表空间分配与默认表空间相似,如果不显式指定,系统会将数据库的临时表空间作为用户的临时表空间;
表空间配额:表空间配额限制用户在永久表空间中可以使用的存储空间的大小,默认新建用户在表空间都没有配额,可以为每个用户在表空间上指定配额,也可授予用户UMLIMITED TABLESPACE系统权限,使用户在表空间的配额上不受限制。不需要分配临时表空间的配额;
概要文件:每个用户必须具有一个概要文件,从会话级和调用级两个层次限制用户对数据库系统资源的使用,同时设置用户的口令管理策略。如果没有为用户指定概要文件,Oracle将自动为用户指定DEFAULT概要文件;
设置用户的默认角色
账户状态:创建用户时,可以设定用户的初始状态,包括口令是否过期和账户是否锁定等。
可以通过数据字典dba_users查询各个用户的属性(这里只截取了前面几列):