Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

USER() और SYS_CONTEXT('USERENV', 'CURRENT_USER') में क्या अंतर है?

मैनुअल से:http://docs.oracle.com/cd/E11882_01/server.112/e26088/functions184.htm#SQLRF51825

CURRENT_USER

<ब्लॉककोट>

डेटाबेस उपयोगकर्ता का नाम जिसके विशेषाधिकार वर्तमान में सक्रिय हैं। यह किसी भी सक्रिय निश्चितकर्ता के अधिकार वस्तु के स्वामी को दर्शाने के लिए सत्र की अवधि के दौरान बदल सकता है। जब कोई निश्चित अधिकार वस्तु सक्रिय नहीं होती है, तो CURRENT_USER SESSION_USER के समान मान लौटाता है। जब दृश्य परिभाषा के मुख्य भाग में सीधे उपयोग किया जाता है, तो यह उस उपयोगकर्ता को लौटाता है जो दृश्य का उपयोग करने वाले कर्सर को निष्पादित कर रहा है; यह निश्चित अधिकारों के रूप में कर्सर में उपयोग किए गए विचारों का सम्मान नहीं करता है।

SESSION_USER

<ब्लॉककोट>

लॉगऑन पर डेटाबेस उपयोगकर्ता का नाम। एंटरप्राइज़ उपयोगकर्ताओं के लिए, स्कीमा लौटाता है। अन्य उपयोगकर्ताओं के लिए, डेटाबेस उपयोगकर्ता नाम लौटाता है। यह मान पूरे सत्र की अवधि के दौरान समान रहता है।

तो वहाँ है SESSION_USER और CURRENT_USER के बीच अंतर विशेष रूप से जब CURRENT_USER का उपयोग किसी संग्रहीत कार्यविधि या फ़ंक्शन में किया जाता है।

हालांकि मुझे यह स्वीकार करना होगा कि मैं नहीं जानता कि "एंटरप्राइज़ उपयोगकर्ता" शब्द का क्या अर्थ है।

बीटीडब्ल्यू:एक तीसरा है:

SESSION_USERID

<ब्लॉककोट>

लॉगऑन पर डेटाबेस उपयोगकर्ता का पहचानकर्ता।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle में SYS_GUID () फ़ंक्शन

  2. NLS_COLLATION_NAME () Oracle में कार्य

  3. नकली OLAP

  4. ऑरैकल 18 में json_table के माध्यम से पार्स जोंस

  5. वाईएक्स में मैं Oracle ODP.Net के लिए रजिस्ट्री कुंजी (मान नहीं) के अस्तित्व के लिए कैसे परीक्षण करूं?