阻止用户使用其数据库帐户登录

在用PL / SQL和Oracle Forms 6i编写的大型旧版应用程序中,我要解决以下业务问题:

不允许用户使用其数据库帐户登录。

整个应用程序大约有50个使用其数据库帐户的用户。审计部门不允许用户知道其数据库帐户密码。

重写应用程序以使用新的用户权限逻辑(使用诸如USERS的表,仅一个数据库用户,等等)是不可能的,因为它工作量太大。

我考虑过以下使用现有数据库用户的解决方案:

使用用户名和新密码创建表USERS,并以某种方式使用代理用户。在一个程序包中,应用程序将检查提供的密码是否与表USERS一致,然后以50个数据库用户中的1个进行连接-因此所有应用程序逻辑和用户权限都可以保持不变。

但是这种解决方法有一个问题-您不能在软件包中使用“连接”。所以我不能使用它。

begin
    IF
        p_in_user == USER2 AND p_in_pass == XXX
    THEN
        EXECUTE IMMEDIATE 'conn USER2/Password123'; -- doesn't work,using a proxy neither
    END IF;
END;

有人有什么想法吗?

wq30091300 回答:阻止用户使用其数据库帐户登录

  

审计部门不允许用户知道其数据库帐户密码

您可以使用密码。

Oracle允许通过配置文件设置使用加密的密码。

您可以使用函数来编写清晰的密码:
清除密码已提供给最终用户
在oracle数据库上,使用加密密码创建/更改了用户帐户。

用户使用他/她的明文密码登录,并在登录时Oracle将其转换为用于身份验证的加密密码。

请确认此解决方案可以,所以我可以举个例子。

本文链接:https://www.f2er.com/3153445.html

大家都在问