【TechTarget中国原创】问:有没有一种办法能让Oracle8.0,8i以及9i阻止某些应用程序如Microsoft Access访问数据库?
答:解决这一问题的方法之一就是使用安全应用程序的Role。创建Role的过程如下:
create ROLE app_role IDENTIFIED USING app_owner.some_package; |
你在这一语句中输入some_package包并命名触发器中的一个程序。这一程序能够执行验证过程,如果它们通过验证,它会在DBMS_SESSION.SET_ROLE中设置app_role。如果没有通过验证,那就表示还没有设置安全应用程序Role。由于定义了Role的范围,使之生效的唯一方法就是运行some_package包中的一个程序。如果你所有的权限都在安全应用程序Role范围之内(或范围相似的几个Role里),那你就不必再阻止用户登录并且还要创建Session。然而,一旦用其中某个工具登录成功,用户就没有任何应用程序权限,并且只能访问PUBLIC授予权限的对象。