知识大全 Oracle数据库安全措施
Posted 权限
篇首语:只有知道如何停止的人才知道如何加快速度。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Oracle数据库安全措施相关的知识,希望对你有一定的参考价值。
Oracle数据库安全措施 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
说明 以下措施只是加强oracle访问上的安全 防止非法用户通过oracle中的漏洞 进行非法连接 对数据库中的数据进行非法操作 造成数据库损害
一 数据库安全原则
.只安装oracle必须的组件
.锁定并终止默认用户帐号
.改变默认用户密码
.激活数据字典保护(oracle i默认具有此功能)
.根据实际情况给予最少的权限
.强制进行有效的访问控制(oracle i默认具有此功能)
.限制操作系统访问
.限制网络访问
.安装所有的安全补丁
二 具体安全加强措施 .对默认用户进行锁定
在oracle安装过程中默认安装会有很多的默认用户 造成安全潜在问题 可以将其锁定 限制对数据库进行连接
Oracle范例用户 HR OE PM SH QS_ADM QS QS_WS QS_ES QS_OS QS_CBADM QS_CB QS_CS
只是用于oracle的范例 没有实际用处
DBSNMP 负责运行Oracle系统的智能代理(Intelligent Agent) 实际中很少使用 几乎不使用
OUTLN 用于存储Outlines 不使用时可锁定 使用时再打开
MDSYS ORDSYS CTXSYS ORDPLUGINS 用于支持oracle的Intermedia 默认锁定
WMSYS 用于存储Oracle Workspace Manager的元数据信息 默认锁定
ANONYMOUS 用于允许HTTP 访问Oracle XML DB
XDB 用于存储Oracle XML DB数据和元数据
此外还有一些系统自带的用户 不再列举 建议对除sys system rman perfstat以外的系统自带用户进行锁定 减少安全隐患
Sql select username account_status from dba_users;
alter user username account lock; .安装最新的安全补丁
安全公告和补丁位置如下
.密码管理机制
在Oracle 我们可以通过修改用户概要文件来设置密码的安全策略 可以自定义密码的复杂度 在概要文件中有以下参数是和密码安全有关系的
FAILED_LOGIN_ATTEMPTS 最大错误登录次数
PASSWORD_GRACE_TIME 口令失效后锁定时间
PASSWORD_LIFE_TIME 口令有效时间
PASSWORD_LOCK_TIME 登录超过有效次数锁定时间
PASSWORD_REUSE_MAX 口令历史记录保留次数
PASSWORD_REUSE_TIME 口令历史记录保留时间
PASSWORD_VERIFY_FUNCTION 口令复杂度审计函数
缺省这个安全策略是没有启用的
启用安全策略
以sys用户执行 SQL> @?/rdbms/admin/utlpwdmg sql
设置举例
CREATE PROFILE app_user LIMIT
FAILED_LOGIN_ATTEMPTS
PASSWORD_LIFE_TIME
PASSWORD_REUSE_TIME
PASSWORD_REUSE_MAX UNLIMITED
PASSWORD_VERIFY_FUNCTION verify_function
PASSWORD_LOCK_TIME /
PASSWORD_GRACE_TIME ;
.资源管理机制
启用资源管理
SQL> alter system set resource_limit=true;
设置举例
CREATE PROFILE app_user LIMIT
SESSIONS_PER_USER UNLIMITED
CPU_PER_SESSION UNLIMITED
CPU_PER_CALL
CONNECT_TIME
LOGICAL_READS_PER_SESSION DEFAULT
LOGICAL_READS_PER_CALL
PRIVATE_SGA K
POSITE_LIMIT ;
指定profile可以使用create user 或者alter user 举例如下
CREATE USER test
IDENTIFIED BY aZ bC
DEFAULT TABLESPACE data_ts
QUOTA M ON test_ts
QUOTA K ON data_ts
TEMPORARY TABLESPACE temp_ts
PROFILE profile_name;
ALTER USER test
IDENTIFIED BY A BDD
DEFAULT TABLESPACE data_ts
TEMPORARY TABLESPACE temp_ts
QUOTA M ON data_ts
QUOTA ON test_ts
PROFILE profile_name;
权限管理
根据实际情况 细分权限 建立角色 对于系统权限慎重给予 采用最小授权原则 给用户尽量少的权限
用户组PUBLIC 顾名思义 表示数据库中的每一位用户 因此 对PUBLIC 用户组授予权限其实也就是对数据库中的每一位用户都授予了相应的权限 这是在授予或撤销权限时非常有用的一条捷径 但也可能带来巨大的安全隐患 尤其是在试图确保以最少权限的方式运行数据库时 更是如此
撤销Public 组的一些不必要权限 严格限制以下程序包的权限
UTL_FILE:该程序包允许oralce 用户读取服务器上的文件 如果设置错误的话 可能可以得到任何文件
UTL_HTTP 该程序包允许oracle 用户通过HTTP 访问外部资源包括恶意的web 代码和文件
UTL_TCP: 该程序包允许oracle 通过TCP 建立连接 从而从网络上得到可执行文件
UTL_SMTP: 该程序包允许oracle 通过SMTP 方式进行通信 从而转发关键文件
撤销以上包的执行权限
Sql
revoke EXECUTE on UTL_FILE from public;
revoke EXECUTE on UTL_TCP from public;
revoke EXECUTE on UTL_SMTP from public;
revoke EXECUTE on UTL_HTTP from public; .修改认证方式
Oracle默认使用操作系统认证 只要能进入系统可直接以sys进入oracle 存在较大安全隐患 可修改为数据库认证方式
在$ORACLE_HOME/neork/admin中 打开sqlnet ora 将SQLNET AUTHENTICATION_SERVICES= (NTS)注释掉 在前面加#即可 .限制IP连接
由于Oracle 的TNS 监听器有许多安全漏洞 其中的一些漏洞甚至能让入侵者得到操作系统的超级用户权限或者修改数据库中的数据 因此在打好补丁的同时 对连接IP 的限制也能做到防患于未然
在$ORACLE_HOME\\neork\\admin 目录下修改SQLNET ORA文件
增加如下内容
tcp validnode_checking = YES
tcp invited_nodes = (IP地址 hostname)
IP地址和hostname是允许连接的主机的名字和IP地址 .关掉Extproc 功能
由于extproc 存在安全问题允许用户不进行身份认证就可以调用系统函数 因此如果不需要该功能必须关闭
修改TNSNAMES ORA 和LISTENER ORA 文件 删除含有EXTPROC的条目 使两个文件中只含有使用的有效连接信息 .启动审计功能
Oracle的审计机制是用来监视用户对ORACLE数据库所做的各种操作 在缺省情况下 系统的审计功能是关闭的 可以在INIT ORA参数文件中设置参数AUDIT_TRAIL来激活 它的值有 NONE 禁止审计 DB 启用审计 写入SYS AUD$ OS 启用审计 写入操作系统
当AUDIT_TRAIL=OS 可设置AUDIT_FILE_DEST指定审计文件的位置 默认情况在$ORACLE_HOME/rdbms/audit下面
AUDIT_SYS_OPERATIONS AUDIT_TRAIL AUDIT_FILE_DEST都是静态参数 需修改参数文件重启后生效
设置审计水平
Statement 指定对影响数据库对象的一个特定类型的特定SQL语句进行审计 比如对表的audit table有以下语句 CREATE TABLE TRUNCATE TABLE MENT ON TABLE and DELETE [FROM] TABLE等
Privilege 对由指定系统权限授权的SQL语句进行审计 比如AUDIT CREATE ANY TRIGGER是对由CREATE ANY TRIGGER系统权限授权的语句进行审计
Object 对特定对象上的特定操作进行审计 比如ALTER TABLE on the emp
设置审计条件
BY SESSION/BY ACCESS BY SESSION使oracle在同一session中的同一类型的SQL语句只写一条记录 BY ACCESS使oracle对每次访问写一条记录
WHENEVER SUCCESSFUL/WHENEVER NOT SUCCESSFUL WHENEVER SUCCESSFU只审计那些成功执行的SQL语句 WHENEVER NOT SUCCESSFUL只审计那些失败或结果错误的SQL语句
审计操作举例
审计连接
AUDIT SESSION; AUDIT SESSION BY scott lori;
审计指定权限
AUDIT DELETE ANY TABLE BY ACCESS WHENEVER NOT SUCCESSFUL;
AUDIT DELETE ANY TABLE;
AUDIT SELECT TABLE INSERT TABLE DELETE TABLE EXECUTE PROCEDURE BY ACCESS WHENEVER NOT SUCCESSFUL;
审计指定对象
AUDIT DELETE ON scott emp;
AUDIT SELECT INSERT DELETE ON jward dept BY ACCESS WHENEVER SUCCESSFUL;
AUDIT SELECT ON DEFAULT WHENEVER NOT SUCCESSFUL;
关闭审计操作
关闭上面例子中的相应审计
NOAUDIT session;
NOAUDIT session BY scott lori;
NOAUDIT DELETE ANY TABLE;
NOAUDIT SELECT TABLE INSERT TABLE DELETE TABLE EXECUTE PROCEDURE;
关闭所有语句审计
NOAUDIT ALL;
关闭所有权限审计
NOAUDIT ALL PRIVILEGES;
关闭对象审计
NOAUDIT DELETE ON emp;
NOAUDIT SELECT INSERT DELETE ON jward dept;
关闭某一对象上的所有审计
NOAUDIT ALL ON emp;
关闭所有的默认对象审计
NOAUDIT ALL ON DEFAULT;
相关审计信息视图
ALL_DEF_AUDIT_OPTS
USER_OBJ_AUDIT_OPTS
DBA_OBJ_AUDIT_OPTS
DBA_STMT_AUDIT_OPTS
DBA_PRIV_AUDIT_OPTS
DBA_AUDIT_TRAIL
USER_AUDIT_TRAIL
DBA_AUDIT_SESSION
USER_AUDIT_SESSION
DBA_AUDIT_STATEMENT
USER_AUDIT_STATEMENT
DBA_AUDIT_OBJECT
USER_AUDIT_OBJECT
DBA_AUDIT_EXISTS
SM$AUDIT_CONFIG
KU$_AUDIT_VIEW
KU$_AUDIT_OBJ_BASE_VIEW
KU$_AUDIT_OBJ_VIEW
DBA_AUDIT_POLICIES
ALL_AUDIT_POLICIES
USER_AUDIT_POLICIES
DBA_FGA_AUDIT_TRAIL
DBA_REPAUDIT_ATTRIBUTE
ALL_REPAUDIT_ATTRIBUTE
USER_REPAUDIT_ATTRIBUTE
DBA_REPAUDIT_COLUMN
ALL_REPAUDIT_COLUMN
USER_REPAUDIT_COLUMN
查看审计信息举例
列出活动的语句审计操作
SELECT * FROM DBA_STMT_AUDIT_OPTS;
列出活动的权限审计操作
SELECT * FROM DBA_PRIV_AUDIT_OPTS;
列出对指定对象的活动对象审计操作
SELECT * FROM DBA_OBJ_AUDIT_OPTS WHERE OWNER = SCOTT AND OBJECT_NAME LIKE EMP% ;
列出默认的对象审计操作
SELECT * FROM ALL_DEF_AUDIT_OPTS;
列出审计记录
SELECT * FROM DBA_AUDIT_OBJECT;
列出对于AUDIT SESSION审计操作的审计记录
SELECT USERNAME LOGOFF_TIME LOGOFF_LREAD LOGOFF_PREAD LOGOFF_LWRITE LOGOFF_DLOCK FROM DBA_AUDIT_SESSION;
cha138/Article/program/Oracle/201311/16598相关参考
Oracle数据库的安全策略 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Oracle是关系型
ORACLE入门之数据库安全策略 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 数据库安全性问题
深入分析Oracle数据库的安全策略 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Oracle
你的Oracle数据库安全吗? 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!随着计算机的普及以及网
如何消除Oracle数据库的安全隐患 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一用户角色的
Oracle数据安全面面观 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 随着计算机的普及以及网
知识大全 SQLServer与Oracle数据库在安全性上的异同
SQLServer与Oracle数据库在安全性上的异同 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧
Oracle数据安全问题面面观(2) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! (二)来自内
知识大全 ORACLE培训教程(2)-数据库的安全性、完整性、并发控制和恢复
ORACLE培训教程(2)-数据库的安全性、完整性、并发控制和恢复 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一
Oracle将加强代码基地安全防御力度 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 数据库巨头