如何通过触发器限制用户访问数据库

日期: 2008-07-14 作者:Brian Peasland翻译:April 来源:TechTarget中国 英文

问:您好!我想在登录数据库之后在通过触发器限制用户数访问据库。你知道,当我们用SQL*Plus或PL/SQL Developer访问数据库时,程序名称显示在视图v$session “program”栏中。然而,我有一个终端用户很狡猾,他访问时在视图里没有显示程序名称,所以他不用通过确认就能正常登录。我不知道这是不是工具版本的原因还是因为机制的设置问题。

您能不能给俄我一些建议,我怎样才能限制这他访问数据库?谢谢您。   答:V$SESSION中的program栏通过应用程序将信息传送给Oracle。Oracle并不总是能读应用程序,所以column值是0。要限制你这名用户访问数据库,你可以输入一……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

:您好!我想在登录数据库之后在通过触发器限制用户数访问据库。你知道,当我们用SQL*Plus或PL/SQL Developer访问数据库时,程序名称显示在视图v$session “program”栏中。然而,我有一个终端用户很狡猾,他访问时在视图里没有显示程序名称,所以他不用通过确认就能正常登录。我不知道这是不是工具版本的原因还是因为机制的设置问题。您能不能给俄我一些建议,我怎样才能限制这他访问数据库?谢谢您。

  :V$SESSION中的program栏通过应用程序将信息传送给Oracle。Oracle并不总是能读应用程序,所以column值是0。要限制你这名用户访问数据库,你可以输入一个简单的AFTER LOGON触发器。这一密码的主体部分用于检验PROGRAM值是否有效。如果无效,类似下面的例子:

  select program INTO v_program FROM v$session
  where audsid=SYS_CONTEXT(’USERENV’,’SESSIONID’);
  IF (v_program IS NULL) THEN
     RAISE_APPLICATION_ERROR(-20001,’Not a valid program’);
  END IF;

作者

Brian Peasland
Brian Peasland

Techtarget旗下Searchoracle网站的资深专家,有16年IT行业经验、计算机科学硕士、专攻数据库方向,曾担任系统管理员等职。此外,他还获Oracle 7.3、8和8i的OCP数据库管理员证书,目前为SGT Inc.公司首席DBA。

翻译

April
April

相关推荐