安全的实现
在多用户环境中,有效治理Oracle数据库最重要的方面就是创建一个安全模式来控制对数据库的访问和更改。在一个Oracle中,可以对单独的用户或数据库角色授予安全许可。
安全治理一般在3个级别中执行:
·数据库级
·操作系统级
·网络安全级
用户名、权限、组和角色
DBA或数据库安全治理员创建用户名(username)来提供有效的用户标识符,用来和数据库连接。在安装过程中自动创建两个赋予DBA角色的用户账号:SYS和SYSTEM。
角色(role)是权限的命名组,可以被创建、更改或删除。在大多数实现中,DBA或安全治理员为用户创建用户名并分配角色,从而赋予用户一个权限集。
每个数据库都有个伪角色,称为PUBLIC,它包含所有的拥护。所有的用户都可以赋予PUBLIC权限。假如通过要害字PUBLIC创建了数据库链接,那么对于所有用户这些链接都是可见的。
安全权限
有4个基本的安全权限可适用于Oracle数据库中的数据:
·SELECT 执行查询
·INSERT 在表或视图中插入行
·UPDATE 更新表或视图中的行
·DELETE 从表、表分区或视图中删除行
除了这些数据特定的权限外,还有以下用于数据库模式中对象的权限:
·CREATE 在模式中创建表
·DROP 在模式中删除表
·ALTER 更改表或视图
所有权限都是通过两个SQL命令来处理。GRANT命令把一个特定的权限赋予一个用户或角色,REVOKE命令用于取消某个特定的权限。其中任何一个命令都可以结合要害字PUBLIC对所有的用户赋予或取消某个权限。
默认角色和权限
默认角色和权限集是Oracle安装过程中预先定义的。每个版本的默认角色都有所变化
CONNECT
可用于注册登录到数据库、创建对象和执行导出。
RESOURCE
可用于创建过程、触发器,以及用户模式区内的类型。
DBA
赋予无限制的权限。
SYSOPER
权限集。答应远程地建立与数据库的连接,并执行有限的已授权的操作,包括启动和关闭。
SYSDBA
权限集。和DBA角色十分相近,包含了SYSOPER权限集以及ADMIN OPTION所有的权限。可用于与远程数据库连接,并远程执行已授权的操作,如关闭或启动数据库。
EXP_FULL_DATABASE
答应执行任何数据库对象导出操作,并且将导出操作记录在数据字典中。
IMP_FULL_DATABASE
可用于成为数据库的用户,这样用户的对象就可以导入适当的模式内。
DELETE_CATALOG_ROLE
可用于从SYS.AUD$审计表中删除行。
EXECUTE_CATALOG_ROLE
可用于执行恢复目录中列出的所有导出包。
SELECT_CATALOG_ROLE
可用于从所有导出恢复目录视图和表中选择角色。
RECOVERY_CATALOG_OWNER
可用于创建恢复目录的所有者。
SNMPAGENT
可用于Oracle企业智能代理。
DBA角色
STARTUP
启动一个数据库实例。
SHUTDOWN
关闭数据库实例。
ALTER DATABASE OPEN
打开一个已安装的但是关闭的数据库。
ALTER DATABASE MOUNT
通过前面的启动实例来安装一个数据库。
ALTER DATABASE BACKUP
例如,启动一个控制文件的备份。
但是现在用的大多是通过RMAN来备份
ALTER DATABASE ARCHIVELOG
指定在日志文件组可以重用之前,日志文件组的内容必须归档。
ALTER DATABASE RECOVER
逐个地应用日志或启动日志文件的自动化应用。
CREATE DATABASE
创建并命名一个数据库,指定数据文件和大小,并指定日志文件及其大小,还要设置参数限制
RESTRICTED SESSION
可用于与受限(Restricted)模式中启动的数据库相连接。设计受限模式的目的是使用户避免进行某些数据库操作
DBA角色的权限一般用于对用户分配表空间配额,设置系统资源限制以及建立审计。
安全审计