2012-11-20 9 views
5

Ich habe Probleme mit der Verwendung von dbms_crypto.hash() Funktion in Oracle.Wie Sie dbms_crypto-Funktionen in Oracle als normaler Benutzer ausführen?

ich Datenbankserver verbunden mit sqlplus als "sys/passwd als sysdba", dann installierte ich dbms_crypto Paket:

@/home/oracle/app/oracle/product/11.2.0/dbhome_1/rdbms/admin/dbmsobtk.sql 
@/home/oracle/app/oracle/product/11.2.0/dbhome_1/rdbms/admin/prvtobtk.plb 
Grant execute on dbms_crypto to public; 
Grant execute on dbms_sqlhash to public; 
Grant execute on dbms_obfuscation_toolkit to public; 
Grant execute on dbms_obfuscation_toolkit_ffi to public; 
Grant execute on dbms_crypto_ffi to public; 

Alles sieht gut aus, so testete ich hash() Funktion:

SQL> select dbms_crypto.hash(utl_raw.cast_to_raw('zorg'), 3) from dual; 

DBMS_CRYPTO.HASH(UTL_RAW.CAST_TO_RAW('ZORG'),3) 
-------------------------------------------------------------------------------- 
60C440F9954CA4744204CDA9CC93567059C1EC82 

Ich habe die Verbindung zu dieser Datenbank als normaler Benutzer getrennt und verbunden, aber dann habe ich einen Fehler erhalten:

SQL> select dbms_crypto.hash(utl_raw.cast_to_raw('zorg'), 3) from dual; 
select dbms_crypto.hash(utl_raw.cast_to_raw('zorg'), 3) from dual 
      * 
ERROR at line 1: 
ORA-06521: PL/SQL: Error mapping function 
ORA-06512: at "MN.DBMS_CRYPTO_FFI", line 131 
ORA-06512: at "MN.DBMS_CRYPTO", line 72 

Warum kann ich diese Funktion nicht als normaler Benutzer verwenden? Wie können andere Benutzer es verwenden?

Ich arbeite mit:

Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production 

Antwort

8

Problem gelöst. Ich habe ein Paket als falschen Benutzer erstellt. Die richtige Art und Weise:

  1. anschließen:

    sqlplus/as sysdba 
    
  2. Pakete installieren:

    @/home/oracle/app/oracle/product/11.2.0/dbhome_1/rdbms/admin/dbmsobtk.sql 
    @/home/oracle/app/oracle/product/11.2.0/dbhome_1/rdbms/admin/prvtobtk.plb 
    
  3. Connect als normaler Benutzer und Anwendung Funktionen von dbms_crypto Paket.

+0

Danke für die Rückmeldung Michal. Könnten Sie angeben, ob anderen dabei geholfen werden könnte? Andernfalls möchten Sie die Frage möglicherweise schließen. –

+1

Ich denke, anderen könnte geholfen werden. –

Verwandte Themen