【问题标题】:Identify current oracle encryption识别当前的预言机加密
【发布时间】:2018-08-30 14:13:48
【问题描述】:

我目前在使用 PL/SQL 构建的 Oracle WebDB 中运行应用程序。我必须在我的 PC 上安装的 Oracle Enterprise Manager Console 中更改 WebDB 的用户密码的唯一访问权限。我们的 Web 控制台和用户更改密码页面不再可用。

我正在尝试编写一个新的更改密码页面。有什么方法可以找出 OEM 控制台用于更新 sys.user$ 表的加密类型,以便在我的新密码更改页面中复制它?

【问题讨论】:

  • 不是我的领域,但密码肯定是散列而不是加密的?

标签: oracle security plsql


【解决方案1】:

您可以在 PLSQL 中使用动态 sql 来执行正确的

'Alter user -user- identified by "password";' 

声明。

【讨论】:

    【解决方案2】:

    您不能直接更新SYS.USER$ 视图。而且不是加密,是uses hashing

    使用来自 PL/SQL 的 ALTER USER <username> identified by <user_password> 语句。然后密码被散列并存储在SYS.USER$ 视图中。您应该使用EXECUTE IMMEDIATE 语法使它们动态化:

    DECLARE
      dml_create_user VARCHAR2(256) := ''; 
      s_user_to_create := 'ju' ;
      s_user_password := 'the_passwd' ;
    BEGIN
      dml_create_user := 
          'create user '||s_user_to_create
       || 'identified by '||s_user_password
       || ' default tablespace TSR01 '
       || ' temporary tablespace TST01 '
       || '  profile DEFAULT ' ;
    
      EXECUTE IMMEDIATE dml_create_user  ; 
    END; 
    

    【讨论】:

      猜你喜欢
      • 2012-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-01
      • 1970-01-01
      • 2012-09-26
      • 2011-03-19
      • 1970-01-01
      相关资源
      最近更新 更多