一、为数据库建立安全策略的重要性
为每个数据库建立安全策略非常重要。安全策略会建立一些方法,以保护数据库数据不受意外或恶意破坏或数据库基础设施损坏。
每个数据库可以有一个管理员,称为安全管理员,负责数据库安全策略的实现和维护。如果数据库系统较小,数据库管理员可以承担安全管理员的职责。但是,如果数据库系统较大,则安全管理员可能由指定的人或组全权负责。
二、用户和资源管理
要连接到数据库,每个用户必须指定一个已经在数据库中定义的有效用户名。必须为用户建立帐户,关于用户的信息存储在数据字典中。
在创建数据库用户(帐户)时,需要指定用户的以下属性:
- 用户名
- 认证方法
- 默认表空间
- 临时表空间
- 其他表空间和配额
- 用户配置文件
# 例如:
CREATE USER jward
IDENTIFIED BY password
DEFAULT TABLESPACE example
QUOTA 10M ON example
TEMPORARY TABLESPACE temp
QUOTA 5M ON system
PASSWORD EXPIRE;
三、用户权限和角色
权限和角色用于控制用户对数据的访问和可执行的SQL语句的类型。
下表描述了三种类型的权限和角色:
类型 | 描述 |
---|---|
系统权限 | 通常仅由管理员授予的系统定义权限。这些权限允许用户执行特定的数据库操作。 |
对象权限 | 控制对特定对象访问的系统定义权限。 |
角色 | 权限和其他角色的集合。存在一些系统定义的角色,但大多数是由管理员创建的。角色将权限和其他角色组合在一起,方便了向用户授予多个权限和角色。 |
权限和角色可以由被授予权限的用户授予其他用户。角色和特权的授予从管理员级别开始。在创建数据库时,将创建管理用户SYS,并授予其所有系统权限和预定义的Oracle数据库角色。用户SYS可以向其他用户授予权限和角色,还可以授予这些用户向其他用户授予特定权限的权利。
四、数据库活动审计
您可以监视和记录选定的用户数据库操作,包括管理员执行的操作。您可以监视系统范围的操作以及在各个数据库对象上执行的操作。这种类型的监视称为数据库审计。
您可以创建统一的审计策略,并通过SQL语句对这些审计策略进行管理。Oracle数据库提供默认的统一审计策略,包含标准的审计设置,您可以自定义统一审计策略。您还可以使用DBMS_FGA PL/SQL包创建细粒度的审计策略。
五、预定义用户帐户
Oracle数据库包含几个预定义的用户帐户。
三种类型的预定义帐户是:
- 管理帐户(SYS、SYSTEM、SYSBACKUP、SYSDG、SYSKM、SYSRAC、SYSMAN和DBSNMP)。SYSMAN用于执行Oracle Enterprise Manager云控制(Cloud Control)管理任务。Cloud Control的管理代理使用DBSNMP帐户对数据库进行监控和管理。您不能删除这些帐户。
- 示例模式帐户
这些可选帐户用于Oracle数据库文档和教学材料中的示例。示例模式帐户是—HR、SH和OE。 - 内部账户
创建这些帐户是为了使各个Oracle数据库特性或组件可以有自己的模式。您不能删除内部帐户,也不能尝试使用这些帐户登录。
注意:从Oracle Database 19c开始,除了SYS和样例模式外,大部分Oracle数据库提供的用户帐户都是仅模式帐户,即创建这些帐户时不需要密码。这可以防止恶意用户登录到这些帐户。当您希望对这些帐户进行身份验证时,您可以为它们分配密码,但是Oracle建议为了更好的安全性,当您不再需要对这些帐户进行身份验证时,您应该将这些帐户更改为仅模式帐户。
关于更多的安全信息请参看:Oracle安全指南