Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jaka jest różnica między USER() a SYS_CONTEXT('USERENV','CURRENT_USER')?

Z instrukcji pod adresem:http://docs.oracle.com/cd/E11882_01/server.112/e26088/functions184.htm#SQLRF51825

CURRENT_USER

Nazwa użytkownika bazy danych, którego uprawnienia są aktualnie aktywne. Może się to zmienić w czasie trwania sesji, aby odzwierciedlić właściciela dowolnego aktywnego obiektu uprawnień osoby definiującej. Gdy żaden obiekt praw definiującego nie jest aktywny, CURRENT_USER zwraca tę samą wartość co SESSION_USER. W przypadku użycia bezpośrednio w treści definicji widoku zwraca użytkownika, który wykonuje kursor, który używa widoku; nie uwzględnia widoków użytych w kursorze jako praw definiującego.

SESSION_USER

Nazwa użytkownika bazy danych podczas logowania. W przypadku użytkowników korporacyjnych zwraca schemat. W przypadku innych użytkowników zwraca nazwę użytkownika bazy danych. Ta wartość pozostaje taka sama przez cały czas trwania sesji.

Więc jest jest różnica między SESSION_USER i CURRENT_USER, zwłaszcza gdy CURRENT_USER jest używany w procedurze lub funkcji składowanej.

Muszę jednak przyznać, że nie wiem, co oznacza termin „użytkownik korporacyjny”.

Btw:jest trzeci:

SESSION_USERID

Identyfikator użytkownika bazy danych podczas logowania.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL, aby znaleźć słowa pisane wielkimi literami z kolumny

  2. Jak uzyskać wygenerowane klucze z wsadu wsadowego JDBC w Oracle?

  3. Przekaż i zwróć niestandardowy obiekt tablicy w ibatis i oracle w java

  4. Jak zadeklarować wyjątek zdefiniowany przez użytkownika przy użyciu zmiennej wyjątku w bazie danych Oracle

  5. Jak zainstalować program SQL Developer na komputerze Mac?