SQLRU.net
Разработка приложений баз данных

Сегодняшние сообщения (вкл)  | Сообщения без ответа (откл)

Форум: Firebird, HQbird, InterBase
 Тема: Ошибка при выполнении execute statement в триггере на соединении
Re: Ошибка при выполнении execute statement в триггере на соединении [сообщение #6163 является ответом на сообщение #6147] Sat, 12 July 2025 01:15
hvlad в настоящее время в онлайне  hvlad
Сообщений: 380
Зарегистрирован: August 2022
Senior Member
Проблему воспроизвел.
Отдельно замечу

1. То, что написано в DB5.SQL
  execute statement (:S)
    (:p02,:p03,:p04,:p05,:p06,:p07,:p08,:p09,:p10,:p11,:p13,:p14,:p15, p16,:p17,:p18,:p19,:p20,:p21,:p22,:p23,:p24,:p25,p26,:p27,:p28,:p29,:p30)
    as user CURRENT_USER
    on external data source 'localhost/3055:LOG_DB5'
    with caller privileges
    into :curr_conn_id;
в принципе никак не может работать, ибо юзер указан (CURRENT_USER), а пароль - нет.

2. with caller privileges не имеет ровно никакого смысла для внешних коннектов.

3. В ExecuteBlock.sql используется другой код
  execute statement (:S)
    (:p02,:p03,:p04,:p05,:p06,:p07,:p08,:p09,:p10,:p11,:p13,:p14,:p15, p16,:p17,:p18,:p19,:p20,:p21,:p22,:p23,:p24,:p25,p26,:p27,:p28,:p29,:p30)
    on external data source 'LOG_DB'
    into :curr_conn_id;
который уже не содержит этих ошибок.

4. про триггер DISCONN_BI0 я вообще не буду говорить
Re: Ошибка при выполнении execute statement в триггере на соединении [сообщение #6164 является ответом на сообщение #6163] Sat, 12 July 2025 01:38
shavluk в настоящее время не в онлайне  shavluk
Сообщений: 87
Зарегистрирован: June 2022
Географическое положение: Одеса
Member
hvlad писал(а) Fri, 11 July 2025 22:15

в принципе никак не может работать, ибо юзер указан (CURRENT_USER), а пароль - нет.
Цитата:
- if PASSWORD clause is omitted then
a) if <user_name> is omitted, NULL or equal to CURRENT_USER value and
if <role_name> is omitted, NULL or equal to CURRENT_ROLE value
then trusted autentication is performed, and
a1) for current connection (ON EXTERNAL DATA SOURCE is omitted) -
CURRENT_USER/CURRENT_ROLE is effective user account and role
a2) for local database (<connection_string> refers to the current database) -
CURRENT_USER/CURRENT_ROLE is effective user account and role
a3) for remote database - operating system account under which engine
process is currently run is effective user account.
b) else isc_dpb_user_name (if <user_name> is present and not empty) and isc_dpb_sql_role_name
  (if <role_name> is present and not empty) will be filled in DPB and native autentication
  is performed.
Re: Ошибка при выполнении execute statement в триггере на соединении [сообщение #6165 является ответом на сообщение #6164] Sat, 12 July 2025 02:19
hvlad в настоящее время в онлайне  hvlad
Сообщений: 380
Зарегистрирован: August 2022
Senior Member
Что сказать-то хотел ? Smile
Что у него на сервере заведен SQL аккаунт для OS аккаунта сервера ?
Или просто хочешь мне мою доку процитировать ? Smile



Текущее время: Sat Jul 12 17:16:47 GMT+3 2025

Общее время, затраченное на создание страницы: 0.01878 секунд