Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Apa perbedaan antara USER() dan SYS_CONTEXT('USERENV','CURRENT_USER')?

Dari manual di:http://docs.Oracle.com/cd/E11882_01/server.112/e26088/functions184.htm#SQLRF51825

CURRENT_USER

Nama pengguna database yang hak istimewanya sedang aktif. Ini dapat berubah selama durasi sesi untuk mencerminkan pemilik objek hak pendefinisi yang aktif. Ketika tidak ada objek hak pendefinisi yang aktif, CURRENT_USER mengembalikan nilai yang sama dengan SESSION_USER. Saat digunakan secara langsung di badan definisi tampilan, ini mengembalikan pengguna yang menjalankan kursor yang menggunakan tampilan; itu tidak menghargai tampilan yang digunakan dalam kursor sebagai hak penentu.

SESSION_USER

Nama pengguna database saat logon. Untuk pengguna perusahaan, kembalikan skema. Untuk pengguna lain, mengembalikan nama pengguna database. Nilai ini tetap sama selama sesi berlangsung.

Jadi ada ada perbedaan antara SESSION_USER dan CURRENT_USER terutama ketika CURRENT_USER digunakan dalam prosedur atau fungsi tersimpan.

Saya harus mengakui bahwa saya tidak tahu apa arti istilah "pengguna perusahaan".

Btw:ada yang ketiga:

SESSION_USERID

Pengidentifikasi pengguna basis data saat masuk.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ada / tidak ada:'pilih 1' vs 'pilih bidang'

  2. Metadata mengenai tipe record level paket PL/SQL

  3. Membuat atau mensimulasikan array dua dimensi dalam PL/SQL

  4. Bagaimana cara membatasi jumlah baris yang dikembalikan oleh kueri Oracle setelah memesan?

  5. Oracle Database 21c untuk platform Linux