powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Конструкция в Sybase ASE 12.5
8 сообщений из 8, страница 1 из 1
Конструкция в Sybase ASE 12.5
    #33939580
Фотография Ray D
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет, All!

Проверьте, пожалуйста, кому не лень, будет ли работать следующая конструкция в ASE 12.5, а то под рукой нет, а проверить очень надо.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
IF not exists (SELECT * FROM sysobjects WHERE name = 'test_proc' AND type = 'P') 
begin 
exec('create procedure test_proc as select 1') 
end 
go 
alter procedure test_proc AS select  2 
go

и разрешения на test_proc останутся при это?
...
Рейтинг: 0 / 0
Конструкция в Sybase ASE 12.5
    #33939678
DrNull
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И проверять не надо...
alter для процедур в ASE не существует.
...
Рейтинг: 0 / 0
Конструкция в Sybase ASE 12.5
    #33939726
Фотография Ray D
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
то есть единственный вариант - drop и снова разрешения раздавать?
...
Рейтинг: 0 / 0
Конструкция в Sybase ASE 12.5
    #33939973
DrNull
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну да.
В чем проблема то?
Код: plaintext
1.
2.
GRANT EXECUTE ON test_proc TO public
go
В самой процедуре проверяешь пользователя
Код: plaintext
1.
if suser_sname() ...
и либо разрешаешь, либо выкидываешь.
А лучше написать процедурку проверки прав...
Рисуешь табличку User...Права...Объект
Тогда права можно раздавать ОЧЕНЬ гибко, хотя некий геморрой при вводе нового пользака будет...
...
Рейтинг: 0 / 0
Конструкция в Sybase ASE 12.5
    #33939999
DrNull
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
if suser_name()
конечно же...
...
Рейтинг: 0 / 0
Конструкция в Sybase ASE 12.5
    #33940374
Фотография Ray D
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понятно, спасибо.
Не серчайте, с MS SQL мы :)
А проблема в том, что на процу админы могут пораздавать права как захотят, и после этого им их придется раздавать снова. В MS SQL я применял такой шаблон, но как говорится - в чужой монастырь... :)
...
Рейтинг: 0 / 0
Конструкция в Sybase ASE 12.5
    #33941822
sn1251
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я применяю такой способ:
1) скрипты процедур хранятся в текстовых файлах, одна процедура - один файл. Всё это конечно в системе контроля версий (у нас - CVS)
2) есть постоянная таблица - по структуре почти как sysprotects, только вместо id - имя объекта
3) есть 2 процедуры - первая (SavePermissions) копирует разрешения из sysprotects в мою табличку, вторая (LoadPermissions) наоборот формирует из данных этой таблицы grant-ы и выполняет в цикле через execute. Можно было бы хранить и готовые строки в таблице, но как сделал - так сделал
4) в начале скрипта всегда идёт вызов SavePermissions, в конце LoadPermissions

Таким образом сохраняются все гранты, которые раздавались в процессе работы с прежней версией процедуры. На вьюшки это тоже распространяется, а таблицы моделируются в PowerDesigner (там с процедурами и сложными представлениями работать хреново).

Так как у нас имеется несколько одинаковых по структуре баз, то есть ещё перловый скрипт, который копирует процедуру из одной базы во все остальные, тоже сохраняя имеющиеся права.
...
Рейтинг: 0 / 0
Конструкция в Sybase ASE 12.5
    #33946215
Фотография Ray D
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ок. Спасибо!
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Конструкция в Sybase ASE 12.5
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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