oracle查询是否有public权限,oracle常规的基线操作,包括public权限,监听,dba权限等...

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');

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

revoke execute on 程序包名称 from public;

oracle禁止具有数据库超级管理员(SYSDBA)权限的用户从远程登陆

在spfile中设置REMOTE_LOGIN_PASSWORDFILE=NONE来禁止SYSDBA用户从远程登陆:

SQL>alter system set remote_login_passwordfile=NONE scope=spfile;

SQL>shutdown immediate;

SQL>startup;

oracle数据库监听器(LISTENER)设置启动密码

切换到oracle的管理员,执行下列命令:

[oracle@./localhost ~]$ $ORACLE_HOME/bin/lsnrctl

LSNRCTL> start

LSNRCTL> change_password

Old password:***

New password:***

Reenter new password:***

LSNRCTL> save_config

oracle检查是否启用数据字典保护

通过设置下面初始化参数来限制只有SYSDBA权限的用户才能访问数据字典:

SQL>alter system set O7_DICTIONARY_ACCESSIBILITY=FALSE scope=spfile;

SQL>shutdown immediate;

SQL>startup;

禁止除默认用户(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;

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

以dba权限登录sqlplus,执行

第一步:查看当前开启用户及其profile

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

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

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

第三步:采用如下方法之一设置开启用户的密码复杂度

方法一:将所有开启用户的profile中的PASSWORD_VERIFY_FUNCTION设置为verify_function(oracle11g为verify_function_11G);

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

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

SQL>create profile [new_profile] limit 属性信息;

SQL>alter user 用户名 profile [new_profile];

注:可在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

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; //账号修改宽限天数

Oracle打开监听器日志

切换到oracle的管理员,执行下列命令:

$ORACLE_HOME/bin/lsnrctl

LSNRCTL>set log_directory /network/admin

LSNRCTL>set log_file .log

LSNRCTL>set log_status on

LSNRCTL>save_config

Oracle设置监听器日志文件

切换到oracle的管理员,执行下列命令:

$ORACLE_HOME/bin/lsnrctl

LSNRCTL>set log_directory /network/admin

LSNRCTL>set log_file .log

LSNRCTL>set log_status on

LSNRCTL>save_config

Oracle11g应设置最大会话数

参考配置操作:

1.以管理员身份登录数据库,修改会话数:

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

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

>SQL:shutdown immediate;

>SQL:startup;

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

oracle 应设置最大进程连接数

参考配置操作:

1.以管理员身份登录数据库,修改进程连接数:

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

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

>SQL:shutdown immediate;

>SQL:startup;

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

oracle应设置最大会话数

参考配置操作:

1.以管理员身份登录数据库,修改会话数:

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

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

>SQL:shutdown immediate;

>SQL:startup;

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

Oracle设置监听器日志目录

切换到oracle的管理员,执行下列命令:

$ORACLE_HOME/bin/lsnrctl

LSNRCTL>set log_directory /network/admin

LSNRCTL>set log_file .log

LSNRCTL>set log_status on

LSNRCTL>save_config

oracle开启数据库审计功能

登录数据库后执行以下语句:

SQL>alter system set audit_trail='DB或者OS' scope=spfile;

SQL>shutdown immediate;

SQL>startup;

通过设置参数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)

);

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;

/

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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值