知识大全 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数据库的安全策略

Oracle数据库的安全策略  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Oracle是关系型

知识大全 ORACLE入门之数据库安全策略

ORACLE入门之数据库安全策略  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  数据库安全性问题

知识大全 深入分析Oracle数据库的安全策略

深入分析Oracle数据库的安全策略  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Oracle

知识大全 你的Oracle数据库安全吗

你的Oracle数据库安全吗?  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!随着计算机的普及以及网

知识大全 如何消除Oracle数据库的安全隐患

如何消除Oracle数据库的安全隐患  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一用户角色的

知识大全 Oracle数据安全面面观

Oracle数据安全面面观  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  随着计算机的普及以及网

知识大全 SQLServer与Oracle数据库在安全性上的异同

SQLServer与Oracle数据库在安全性上的异同  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 Oracle 数据安全问题面面观(2)

Oracle数据安全问题面面观(2)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  (二)来自内

知识大全 ORACLE培训教程(2)-数据库的安全性、完整性、并发控制和恢复

ORACLE培训教程(2)-数据库的安全性、完整性、并发控制和恢复  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一

知识大全 Oracle将加强代码基地安全防御力度

Oracle将加强代码基地安全防御力度  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  数据库巨头