安全的实现
在多用户环境中有效管理Oracle数据库最重要的方面就是创建一个安全模式来控制对数据库的访问和更改在一个Oracle中可以对单独的用户或数据库角色授予安全许可
安全管理一般在个级别中执行
·数据库级
·操作系统级
·网络安全级
用户名权限组和角色
DBA或数据库安全管理员创建用户名(username)来提供有效的用户标识符用来和数据库连接在安装过程中自动创建两个赋予DBA角色的用户账号SYS和SYSTEM
角色(role)是权限的命名组可以被创建更改或删除在大多数实现中DBA或安全管理员为用户创建用户名并分配角色从而赋予用户一个权限集
每个数据库都有个伪角色称为PUBLIC它包含所有的拥护所有的用户都可以赋予PUBLIC权限如果通过关键字PUBLIC创建了数据库链接那么对于所有用户这些链接都是可见的
安全权限
有个基本的安全权限可适用于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
可用于从SYSAUD$审计表中删除行
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角色的权限一般用于对用户分配表空间配额设置系统资源限制以及建立审计
安全审计