当前位置:   article > 正文

oracle常规的基线操作,包括public权限,监听,dba权限等_基线检查 针对系统每个账户创建profile,如账户已有profile,可通过修改profile来控

基线检查 针对系统每个账户创建profile,如账户已有profile,可通过修改profile来控

oracle设置public角色执行权限
参考配置操作:
以DBA身份登录sqlplus,执行:

select table_name from dba_tab_privs where grantee='PUBLIC' and privilege='EXECUTE' and table_name in ('UTL_FILE','UTL_TCP','UTL_HTTP','UTL_SMTP','DBMS_LOB','DBMS_SYS_SQL','DBMS_JOB'); 
  • 1

如撤销不必要的public角色包执行权限,执行:

revoke execute on 程序包名称 from public;
  • 1

oracle禁止具有数据库超级管理员(SYSDBA)权限的用户从远程登陆
在spfile中设置REMOTE_LOGIN_PASSWORDFILE=NONE来禁止SYSDBA用户从远程登陆:

SQL>alter system set remote_login_passwordfile=NONE scope=spfile; 
SQL>shutdown immediate; 
SQL>startup;
  • 1
  • 2
  • 3

oracle数据库监听器(LISTENER)设置启动密码
切换到oracle的管理员,执行下列命令:

[oracle@./localhost ~]$ $ORACLE_HOME/bin/lsnrctl 
LSNRCTL> start 
LSNRCTL> change_password 
Old password:*** 
New password:*** 
Reenter new password:*** 
LSNRCTL> save_config
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

oracle检查是否启用数据字典保护
通过设置下面初始化参数来限制只有SYSDBA权限的用户才能访问数据字典:

SQL>alter system set O7_DICTIONARY_ACCESSIBILITY=FALSE scope=spfile; 
SQL>shutdown immediate; 
SQL>startup;
  • 1
  • 2
  • 3

禁止除默认用户(sys、system、sysman)外其他用户有DBA角色权限
参考配置操作:
SQL>revoke dba from A;收回用户A的DBA权限
说明:
除了默认用户(sys、system和sysman),其他用户都不应赋予dba角色权限。
查看除默认用户(sys、system和sysman)外有DBA权限的用户:
SQL>select a.username from dba_users a left join dba_role_privs b on a.username = b.grantee where granted_role = ‘DBA’ and a.username not in (‘SYS’,‘SYSMAN’,‘SYSTEM’);

oracle检查是否进行SQL92安全设置
参考配置操作:
1.执行SQL命令

>SQL: alter system set sql92_security =true scope=spfile; 
2.关闭,重新启动数据库 
>SQL:shutdown; 
>SQL:startup;
  • 1
  • 2
  • 3
  • 4

oracle用静态口令进行认证的数据库,设置所有开启用户的口令长度至少6位,并包括数字、小写字母、大写字母和特殊符号4类中至少2类

以dba权限登录sqlplus,执行
第一步:查看当前开启用户及其profile

SQL>select username,profile from dba_users where account_status='OPEN'; 
  • 1

第二步:创建系统默认的口令复杂度函数

SQL>@?/rdbms/admin/utlpwdmg.sql 
  • 1

第三步:采用如下方法之一设置开启用户的密码复杂度
方法一:将所有开启用户的profile中的PASSWORD_VERIFY_FUNCTION设置为verify_function(oracle11g为verify_function_11G);

SQL>alter profile[第一步中的profile] limit PASSWORD_VERIFY_FUNCTION verify_function(oracle11g为verify_function_11G);
  • 1

方法二:创建一个自定义profile,设置密码复杂度,并应用于开启用户

SQL>create profile [new_profile] limit 属性信息; 
SQL>alter user 用户名 profile [new_profile]; 
  • 1
  • 2

注:可在ORACLE_HOME/RDBMS/ADMIN/utlpwdmg.sql文件中修改函数verify_function(oracle11g为verify_function_11G),原有的代码默认是数字+大小写+符号,长度要大于等于4(verify_function)长度大于等于8(verify_function_11G)。

Oracle为系统开启账户创建profile
针对系统每个账户创建profile,如账户已有profile,可通过修改profile来控制用户属性。
1.新建profile:

SQL>create profile Profile_Name limit 
PASSWORD_LIFE_TIME 60 //账号生命周期60天 
PASSWORD_REUSE_TIME 60 //口令历史记录保留时间60天 
PASSWORD_REUSE_MAX 5 //用户不能重复使用最近5次 
PASSWORD_VERIFY_FUNCTION verify_function //用户密码复杂度 
PASSWORD_GRACE_TIME 90; //账号修改宽限天数 
ALTER USER UserName PROFILE Profile_Name; //将Profile_Name分配给用户UserName 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

2.修改profile:

alter profile Profile_name limit 
PASSWORD_LIFE_TIME 60 //账号生命周期60天 
PASSWORD_REUSE_TIME 60 //口令历史记录保留时间60天 
PASSWORD_REUSE_MAX 5 //用户不能重复使用最近5次 
PASSWORD_VERIFY_FUNCTION verify_function //用户密码复杂度 
PASSWORD_GRACE_TIME 90; //账号修改宽限天数
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

Oracle打开监听器日志
切换到oracle的管理员,执行下列命令:

$ORACLE_HOME/bin/lsnrctl 
LSNRCTL>set log_directory <oracle_home路径>/network/admin 
LSNRCTL>set log_file <sid名称>.log 
LSNRCTL>set log_status on 
LSNRCTL>save_config
  • 1
  • 2
  • 3
  • 4
  • 5

Oracle设置监听器日志文件
切换到oracle的管理员,执行下列命令:

$ORACLE_HOME/bin/lsnrctl 
LSNRCTL>set log_directory <oracle_home路径>/network/admin 
LSNRCTL>set log_file <sid名称>.log 
LSNRCTL>set log_status on 
LSNRCTL>save_config
  • 1
  • 2
  • 3
  • 4
  • 5

Oracle11g应设置最大会话数
参考配置操作:
1.以管理员身份登录数据库,修改会话数:

>SQL:alter system set sessions=标准值 scope=spfile;
  • 1

2.重启数据库,启用参数:

>SQL:shutdown immediate; 
>SQL:startup; 
  • 1
  • 2

(可能需要同时修改UNIX系统参数:/etc/proc/kernel 中semmns)

oracle 应设置最大进程连接数
参考配置操作:
1.以管理员身份登录数据库,修改进程连接数:

>SQL:alter system set processes=225 scope=spfile; 
  • 1

2.重启数据库,启用参数:

>SQL:shutdown immediate; 
>SQL:startup; 
  • 1
  • 2

(可能需要同时修改UNIX系统参数:/etc/proc/kernel 中semmns)

oracle应设置最大会话数
参考配置操作:
1.以管理员身份登录数据库,修改会话数:

>SQL:alter system set sessions=标准值 scope=spfile; 
2.重启数据库,启用参数: 
>SQL:shutdown immediate; 
>SQL:startup; 
  • 1
  • 2
  • 3
  • 4

(可能需要同时修改UNIX系统参数:/etc/proc/kernel 中semmns)

Oracle设置监听器日志目录
切换到oracle的管理员,执行下列命令:

$ORACLE_HOME/bin/lsnrctl 
LSNRCTL>set log_directory <oracle_home路径>/network/admin 
LSNRCTL>set log_file <sid名称>.log 
LSNRCTL>set log_status on 
LSNRCTL>save_config
  • 1
  • 2
  • 3
  • 4
  • 5

oracle开启数据库审计功能
登录数据库后执行以下语句:

SQL>alter system set audit_trail='DB或者OS' scope=spfile; 
SQL>shutdown immediate; 
SQL>startup; 
  • 1
  • 2
  • 3

通过设置参数audit_trail = db或os来打开数据库审计,然后可使用Audit命令对相应的对象进行审计设置。audit_trail是static参数,每次修改后需要重新启动数据库才能生效。

oracle创建触发器对用户登录进行日志记录
Step1、建表LOGIN_LOG

create table LOGIN_LOG( 
    SESSION_ID NUMBER(8,0) NOT NULL, 
    LOGIN_ON_TIME DATE, 
    USER_IN_DB VARCHAR(50), 
    IP_ADDRESS VARCHAR(20) 
    ); 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

Step2、建触发器LOGIN_INFO

create trigger LOGIN_INFO 
after logon on database 
begin 
insert into LOGIN_LOG(SESSION_ID,LOGIN_ON_TIME,USER_IN_DB,IP_ADDRESS) select AUDSID,sysdate,sys.login_user,SYS_CONTEXT('USERENV','IP_ADDRESS') from v$session where AUDSID=USERENV('SESSIONID'); 
end; 
/ 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

注意:end后的/不能少,可重新登录数据库,查看LOGIN_LOG表的内容来检验是否创建成功。(select * from LOGIN_LOG; )

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小舞很执着/article/detail/954644
推荐阅读
相关标签
  

闽ICP备14008679号