Oracle数据库创build设置的最佳实践

安装Oracle数据库时,您通常会应用哪些非默认设置(或考虑应用)?

我不是依赖于硬件设置(例如内存分配)或文件位置,而是更一般的项目。 同样,对特定应用程序而言,任何特定的要求,而不是普遍适用的都不是真正有用的。

你是否从数据scheme(表所有者)中分离出代码/ API模式(PL / SQL所有者)? 你使用默认或非默认的angular色,如果是后者,你的密码保护angular色?

我也感兴趣的是,是否有任何地方你做了默认安装的GRANT REVOKE。 这可能是版本依赖,因为11g似乎更多的locking其默认安装。

这些是我在最近的设置中使用的。 我想知道我是否错过了什么或者你不同意(以及为什么)。

数据库参数

  • 审计(AUDIT_TRAIL到DB和AUDIT_SYS_OPERATIONS为YES)
  • DB_BLOCK_CHECKSUM和DB_BLOCK_CHECKING(都为FULL)
  • GLOBAL_NAMES为true
  • OPEN_LINKS为0(没想到会在这个环境中使用)

字符集 – AL32UTF8

简介
我创build了一个修改密码validation函数,它使用apex字典表(FLOWS_030000.wwv_flow_dictionary $)作为额外的检查来防止简单的密码。

开发者login

CREATE PROFILE profile_dev LIMIT FAILED_LOGIN_ATTEMPTS 8 PASSWORD_LIFE_TIME 32 PASSWORD_REUSE_TIME 366 PASSWORD_REUSE_MAX 12 PASSWORD_LOCK_TIME 6 PASSWORD_GRACE_TIME 8 PASSWORD_VERIFY_FUNCTION verify_function_11g SESSIONS_PER_USER unlimited CPU_PER_SESSION unlimited CPU_PER_CALL unlimited PRIVATE_SGA unlimited CONNECT_TIME 1080 IDLE_TIME 180 LOGICAL_READS_PER_SESSION unlimited LOGICAL_READS_PER_CALL unlimited; 

应用程序login

 CREATE PROFILE profile_app LIMIT FAILED_LOGIN_ATTEMPTS 3 PASSWORD_LIFE_TIME 999 PASSWORD_REUSE_TIME 999 PASSWORD_REUSE_MAX 1 PASSWORD_LOCK_TIME 999 PASSWORD_GRACE_TIME 999 PASSWORD_VERIFY_FUNCTION verify_function_11g SESSIONS_PER_USER unlimited CPU_PER_SESSION unlimited CPU_PER_CALL unlimited PRIVATE_SGA unlimited CONNECT_TIME unlimited IDLE_TIME unlimited LOGICAL_READS_PER_SESSION unlimited LOGICAL_READS_PER_CALL unlimited; 

标准架构所有者帐户的权限

 CREATE CLUSTER CREATE TYPE CREATE TABLE CREATE VIEW CREATE PROCEDURE CREATE JOB CREATE MATERIALIZED VIEW CREATE SEQUENCE CREATE SYNONYM CREATE TRIGGER 

这是我曾经遇到过的一个问题,这是某个人在早期版本的Oracle上使用最佳实践的一个例子:

http://www.akadia.com/services/ora_linux_install_10g.html

审核 – closures,除非客户要求启用它。

将代码模式从数据模式中分离出来 :不是,但是必须将代码和数据模式与用户隔离开来,通过angular色或授权访问基础表/代码。