powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / СУБД ЛИНТЕР - GRANT-ы процедурам
2 сообщений из 2, страница 1 из 1
СУБД ЛИНТЕР - GRANT-ы процедурам
    #33311663
D_N_SL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
"Либо лыжи не едут либо ..."

В продолжение от Кто-нибудь пользует Линтер-ВС 6.0?...

Задача та же: дать доступ к процедурам, запретив при этом доступ к таблицам, вызываемым из этих процедур.

Пятый оказался в пролете. Для шестого (win32 6.1.6.10) линтера думал дело парочки грантов, но не тут то было.
События:
SYSTEM-ом создаю таблицу:
Код: plaintext
create table tbl1 (id int, name char( 1000 ));
SYSTEM-ом создаю процедуру:
Код: plaintext
create or replace procedure PROC_TBL1 () \n\ncode \n\nexecute direct "update SYSTEM.TBL1 set id=id+1";\ncommit;\n\nend 

SYSTEM-ом создаю юзера:
Код: plaintext
create user "DEN4" identified by "DENPASS"
Процедура, как и следовало - не запускается. Чтоб запускалась делаю
Код: plaintext
grant execute as OWNER  on SYSTEM.PROC_TBL1 to DEN4;
Процедура теперь запускается, но результата в SYSTEM.TBL1 не видно. Почему???

После
Код: plaintext
grant all on SYSTEM.TBL1 to "DEN4";
всё работает - но это уже не то, чего хотелось изначально.

Код: plaintext
grant execute  on SYSTEM.PROC_TBL1 to DEN4;
- тоже не помогло :)

Заранее спасибо всем отозвавшимся!
...
Рейтинг: 0 / 0
СУБД ЛИНТЕР - GRANT-ы процедурам
    #33311993
pavelvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
D_N_SL...
Процедура, как и следовало - не запускается. Чтоб запускалась делаю
Код: plaintext
grant execute as OWNER  on SYSTEM.PROC_TBL1 to DEN4;
Процедура теперь запускается, но результата в SYSTEM.TBL1 не видно. Почему???

Права даны. Но при вызове нужно указать, что процедура будет исполняться от имени владельца. Вот синтаксис вызова процедуры:
EXECUTE [<имя владельца>.]<имя процедуры> (<список параметров>) [AS OWNER];

Т.е. вызов должен быть таким:
Код: plaintext
execute SYSTEM.PROC_TBL1 as owner;

В ЛИНТЕР 6.1.7 появилась привилегия на запуск по умолчанию от имени владельца. В этом случае "as owner" можно не указывать.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / СУБД ЛИНТЕР - GRANT-ы процедурам
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]