Какая информация хранится в контекстной области в plsql? - PullRequest
1 голос
/ 01 июня 2019

Я узнал, что контекстная область в oracle является частной областью памяти, где хранится информация, необходимая для обработки операторов SQL. Однако я нигде не узнал, что за информация там хранится.

1 Ответ

1 голос
/ 01 июня 2019

Oracle имеет контекст по умолчанию с именем 'userenv', в котором хранится много информации о сеансе. Мы можем получить доступ к информации, используя sys_context(). Например, чтобы получить имя базы данных ...

select sys_context('USERENV', 'DB_NAME') from dual;

Все действительные параметры перечислены в Справочник SQL для sys_context здесь .

Некоторые очень полезные параметры: «ACTION», «MODULE» и «CLIENT_INFO». Эти поля заполняются с помощью dbms_application_info вызовов , что позволяет нам передавать информацию между программами.

Однако мы можем расширить эту возможность, определив собственные пространства имен контекста. Для этого требуется привилегия CREATE CONTEXT (по умолчанию доступно только пользователям DBA). Программы пишут и читают из контекста, используя dbms_session звонки . С нашим собственным контекстным пространством имен мы можем хранить информацию на заказ в памяти сеанса. Детальное управление доступом (защита на уровне строк и столбцов) опирается на эту функцию. Поэтому в Руководстве по безопасности гораздо больше о контекстах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...