网络安全 频道

Oracle安全全接触(完整版)

    2. 扩展密码文件的用户数量:

  当向密码文件添加的帐号数目超过创建密码文件时所定的限制(即ORAPWD.EXE工具的MAX_USERS参数)时,为扩展密码文件的用户数限制,需重建密码文件,具体步骤如下:

  a) 查询视图V$PWFILE_USERS,记录下拥有SYSOPER/SYSDBA系统权限的用户信息;

  关闭数据库;

  c) 删除密码文件;

  d) 用ORAPWD.EXE新建一密码文件;

  e) 将步骤a中获取的用户添加到密码文件中。

  3. 修改密码文件的状态:

  密码文件的状态信息存放于此文件中,当它被创建时,它的缺省状态为SHARED。可以通过改变初始化参数REMOTE_LOGIN_PASSWORDFILE的设置改变密码文件的状态。当启动数据库事例时,Oracle系统从初始化参数文件中读取REMOTE_LOGIN_PASSWORDFILE参数的设置;当加载数据库时,系统将此参数与口令文件的状态进行比较,如果不同,则更新密码文件的状态。若计划允许从多台客户机上启动数据库实例,由于各客户机上必须有初始化参数文件,所以应确保各客户机上的初始化参数文件的一致性,以避免意外地改变了密码文件的状态,造成数据库登陆的失败。

  4. 修改密码文件的存储位置:

  密码文件的存放位置可以根据需要进行移动,但作此修改后,应相应修改系统注册库有关指向密码文件存放位置的参数或环境变量的设置。

  5. 删除密码文件:

  在删除密码文件前,应确保当前运行的各数据库实例的初始化参数REMOTE_LOGIN_PASSWORDFILE皆设置为NONE。在删除密码文件后,若想要以管理员身份连入数据库的话,则必须使用操作系统验证的方法进行登录。

  但是管理员都觉得乏味,因为在管理员中流行一种很简单的加密办法--就是经常,很频繁地修改自己的密码。可是,每次修改都跟打一次仗似的--因为更新程序并不是每个人都愿意做的事情。

  那么有没有什么简单点的办法呢?请往下看:

  模型:Oracle7.3;开发工具:Develope2000。收费系统(在数据库中的名称是SFYY),其Client端分散在市区的数个营业点,通过城域网与主机(小型 机)相连。

  过程:

  ·在收费小型机Oracle系统的system用户(DBA)下,创建新用户test;

  create user test

  identified by carton

  default tablespace dataspace1

  quota 100K

  ·对test用户授以权限;

  grant create session to test;

  grant resource to test;

  ·在test用户下建立一个存储函数mmtranslate,它其实是一个加密程序。下面是一个简 单的例子。

  function mmtranslate(m varchar2)

  return varchar2

  as

  i number(2);

  kk varchar2(10);

  begin

  kk:=′′;

  i:=1;

  loop

  if i<=length(m) then

  if instr(′1234567890′,substr(m,i,1),1,1)>0 then

  kk:=kk||chr(100+to_number(substr(m,i,1)));

  elseif instr(‘wxyz‘,substr(m,i,1),1,1)>0 then

  kk:=kk||chr(-8+ascii(substr(m,i,1)));

  else

  kk:=kk||chr(4+ascii(substr(m,i,1)));

  end if;

  else

  exit;

  end if;

  i:=i+1;

  end loop;

  return kk;

  exception

  when others then

  return ′-1′;

  end;

  ·在test用户下建表mmtest并插入记录:

  create table mmtest

  (usnamevarchar2(6),------用户名称

  mimavarchar2(6)------加密前的密码);

  insert into mmtest values( ‘sfyy‘,‘eds2‘);

  commit;

  ·执行以下语句

  SQL>select mmtranslate(‘eds2‘) from dual;

  MMTRANSLATE(‘EDS2‘)

  ----------------------------------------

  ihwf

0
相关文章