Доступные версии документации

Определение имени текущего пользователя

Синтаксис
 
username()
Описание

Получение имени текущего пользователя.

Возвращаемое значение

Имя пользователя (char(66)), который вызвал процедуру.

Пример

1. Создание процедуры CurUser, владельцем которой является пользователь SYSTEM.

username SYSTEM/MANAGER

create or replace procedure CurUser() result varchar(128)
code
  return "Текущий пользователь: " + trim(USERNAME());
end;

2. Выполнение процедуры.

execute CurUser();
Результат: Текущий пользователь: SYSTEM

3. Создание пользователя TESTER и предоставление ему прав на выполнение процедуры SYSTEM.CurUser().

create or replace user TESTER identified by '12345';
grant execute on CurUser to TESTER;

4. Установка нового текущего пользователя соединения с СУБД.

username TESTER/12345

5. Вызов на выполнение процедуры SYSTEM.CurUser пользователем TESTER.

execute SYSTEM.CurUser();
Результат: Текущий пользователь: TESTER

Примечание. Функция процедурного языка username() идентична псевдостолбцу USER языка SQL.

username SYSTEM/MANAGER
create or replace procedure SelCurUser() result varchar(128)
declare
  var usr char(66);
code
  execute "select user;" into usr;
  return usr;
end;
execute SelCurUser();
Результат: SYSTEM
Заметили ошибку?
Выделите текст и нажмите Ctrl + Enter