A profile has dual function: toenforce a password policy and to restrict the resources a session can consume;
密码管理是一直有效的
对资源的管理时当初始化参数RESOURCE_LIMIT为TRUE时才会有效,默认值为false;
密码管理
- FAILED_LOGIN_ATTEMPTS:在账号被锁之前可以输入错误密码的最大次数;
- PASSWORK _LOCK_TIME:账号在上步被锁定后,需要锁定是时间
- PASSWORD_LIFE_TIME:账号需要在多长时间内需要进行修改,还和PASSWORD_GRACE_TIME参数有关
- PASSWORD_GRACE_TIME:
指定宽限天数,数据库发出警告到登陆失效前的天数。如果数据库密码在这中间没有被修改,则过期会失效。
- PASSWORD_REUSE_MAX:这个参数和下面一个参数需要同时使用才有作用,需要做试验进行测试;
- PASSWORD_REUSE_TIME
- PASSWORD_VERIFY_FUNCTION
资源管理
- SESSIONS_PER_USER
- CPU_PER_SESSION
- CPU_PER_CALL
- LOGICAL_READS_PER_SESSION
- LOGICAL_READS_PER_CALL
- PRIVATE_SGA
- CONNECT_TIME
- IDLE_TIME
- COMPOSITE_LIMIT
建立和分派配置文件
--查看目前正在使用的配置文件
selectusername,profile from dba_users;
默认的配置文件对资源没有任何限制,指示对密码有限制
FAILED_LOGIN_ATTEMPTS
10
PASSWORD_LOCK_TIME
1
PASSWORD_LIFE_TIME
180
PASSWORD_GRACE_TIME
7
在%Oracle_HOMERDBMSADMINutlpwdmg.sql%文件中有更加详细的配置文件的建立方法;
一个配置文件一旦被分派给用户,这个配置文件就不能被删除
DROP PROFILE profile_name;
DROPPROFILE profile_name CASCADE;--这个命令可以删除配置文件,并恢复为默认的DEFAULT配置文件;
例:
createprofile two_wrong limit failed_login_attempts 2;
alteruser sj profile two_wrong;
数据库安全准则:
有安全危险的包:
- UTL_FILE:允许用户去读写操作系统中Oracle用户可以读写的所有文件和目录;
- UTL_TCP:允许用户打开服务器上的TCP端口
- UTL_SMTP:
- UTL_HTTP:
和Oracle安全相关的初始化参数
- UTL_FILE_DIR:这个参数默认值为null,这时不存在安全问题,但如果设定值后,通过UTL_FILE包就可以访问相关的目录和文件了;
- REMOTE_OS_AUTHENT AND OS_AUTHENT_PREFIX
- 07_DICTIONARY_ACCESSIBILITY:this instance parameter controls the effect of granting object privileges with the ANY keyword;如果将这个参数设置为true,那么用户将可以看到数据字典和用户数据;变通的方法是使用SELECT ANY DICTIONARY权限,这个权限可以让用户看到数据字典和动态性能视图,但是他们不能看到用户的数据;
- REMOTE_LOGIN_PASSWORDFILE:这个参数控制SYSDBA和SYSOPER用户是否可以通过网络远程登录;如果这个参数设置为NONE,那么SYSDBA唯一登录Oracle数据库的方法就是登录Oracle所在的服务器操作系统;
- SHARED:所有的运行的实例使用一个密码文件
- EXCLUSIVE:每个实例都寻找自己相对应的密码文件;
如果你用SYSDBA权限登录,不管你输入的是哪个用户名,最终显示的用户为SYS;
如果你用SYSOPER权限登录,不管你输入的是哪个用户名,最终显示的用户为PUBLIC;