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 връща същата стойност като 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 има ли функция, която изчислява разликата между две дати?

  2. Функция DECOMPOSE() в Oracle

  3. Някакви недостатъци на битовите флагове в колоните на базата данни?

  4. променете колоната за отпадане на таблицата в базата данни на Oracle

  5. Изпълняване на съхранена процедура в SQL Developer?