powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASE: Копировать права на объект
11 сообщений из 11, страница 1 из 1
ASE: Копировать права на объект
    #38930853
Mikle83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем доброго!

Дано: есть ХП с выданными на нее правами.
Требуется: для другой ХП сконфигурировать ровно такие же права, как и на первой.

Тривиальный способ - парсинг sysprotects и динамические запросы на каждую запись с использованием имени второго объекта.

Может есть более изящное решение? Или хотя бы системная процедура/функция, которая обеспечит маппинг поля action в удобоваримые конструкции типа "insert" и т.п. - громадный CASE на соответствующий маппинг несколько не радует глаз...
...
Рейтинг: 0 / 0
ASE: Копировать права на объект
    #38930921
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня это решается проще.
Все объекты лежат на диске (и subversion) в скриптах. Соответственно все grant находятся там-же, так что copy-paste, search&replace и завершается все перезаливкой объектов в базу.
Все просто и легко.
...
Рейтинг: 0 / 0
ASE: Копировать права на объект
    #38930975
Mikle83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl,

это да. Но есть ряд легаси объектов в базе, до которых я не добирался еще.
И вот периодически возникает задача - создать процедуру/таблицу с "такими же правами как на вот этой процедуре/таблице".

Вообще странно, что нет стандартного какого-нить механизма типа sp_copypermissions Object1, Object2 .
Было б удобно.
...
Рейтинг: 0 / 0
ASE: Копировать права на объект
    #38931071
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikle83White Owl,

это да. Но есть ряд легаси объектов в базе, до которых я не добирался еще. А чего там добираться? Если исходный скрипт потерял, то запускаем Sybase Central, right-click на объекте, Generate DDL и все. Кстати, там же будет и список всех grant'ов. Которые тоже можно будет скопировать.
...
Рейтинг: 0 / 0
ASE: Копировать права на объект
    #38931247
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikle83,

Тривиальный способ - парсинг sysprotects и динамические запросы на каждую запись с использованием имени второго объекта.


естьи еще один способ - генерировать запрос на выдачу прав в виде теста, на основе данных того же sysprotects.

select 'grant exec on xxxxx to '+user +'
go'
from sysprotects where proc = 'yyyyy'
go
...
Рейтинг: 0 / 0
ASE: Копировать права на объект
    #38933193
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikle83Всем доброго!

Дано: есть ХП с выданными на нее правами.
Требуется: для другой ХП сконфигурировать ровно такие же права, как и на первой.

Тривиальный способ - парсинг sysprotects и динамические запросы на каждую запись с использованием имени второго объекта.

Может есть более изящное решение? Или хотя бы системная процедура/функция, которая обеспечит маппинг поля action в удобоваримые конструкции типа "insert" и т.п. - громадный CASE на соответствующий маппинг несколько не радует глаз...

не пробовал, но идея такая:
1) sp_configure 'allow updates',1
2) сделать вью, смотрящую на sysprotects, в которой один объект/id с правами заменить на другой
3) выгрузить её (bcp) и залить обратно в sysprotects
...
Рейтинг: 0 / 0
ASE: Копировать права на объект
    #38933238
Mikle83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
komrad,

в чем смысл шаманства именно с BCP? Почему не просто insert в таблицу ?
BCP даст какой-то особенный профит при работе с системными таблицами?

P.S.: интерес чисто академический, ибо на проде за такой подход я бы лично руки поотрывал :)
...
Рейтинг: 0 / 0
ASE: Копировать права на объект
    #38933281
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikle83komrad,

в чем смысл шаманства именно с BCP? Почему не просто insert в таблицу ?
BCP даст какой-то особенный профит при работе с системными таблицами?

P.S.: интерес чисто академический, ибо на проде за такой подход я бы лично руки поотрывал :)

Если выгружать в тексте, то можно поудалять лишнее, поправить что-нить.
А в общем, конечно, можно и просто инсертить.
Однако в случае с BCP, останутся файлы на случай отката и т.п.

По поводу рук, поотрывать и продакшена - бывает всякое. Например, в одном очень известном банке баги в коде/процедурах правят по живому в продакшене.
Мотивируя это тем, что "нет времени на тесты, у нас работают только проверенные люди [которые ошибок не допускают]".
Так что это вопрос философский - как где заведено, так там и работают.

Что касается апдейта системных таблиц - раз это разрешено и понимаешь, что делаешь, имеешь бекапы и т.п., то почему бы и нет?
...
Рейтинг: 0 / 0
ASE: Копировать права на объект
    #38933288
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikle83Может есть более изящное решение? Или хотя бы системная процедура/функция, которая обеспечит маппинг поля action в удобоваримые конструкции типа "insert" и т.п. - громадный CASE на соответствующий маппинг несколько не радует глаз...

одно время пользовался удобной и быстрой утилитой SQLDBX , которая умеет генерировать инсерты (скрипты) на базе выборки, которую ты сделал.

может пригодится
...
Рейтинг: 0 / 0
ASE: Копировать права на объект
    #38933371
Mikle83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
komradв одном очень известном банке баги в коде/процедурах правят по живому в продакшене.
Мотивируя это тем, что "нет времени на тесты, у нас работают только проверенные люди [ которые ошибок не допускают ]".

Чего-то у меня пазл не сложился: если такие спецы "проверенные" и ошибок не допускают => откуда баги? :)



komradодно время пользовался удобной и быстрой утилитой SQLDBX,

Спасибо! Посмотрю.

komradЧто касается апдейта системных таблиц - раз это разрешено и понимаешь, что делаешь, имеешь бекапы и т.п., то почему бы и нет?

Тут тема какая - SYBASE мягко сказать не договаривает (читай "плохо документирован") по системным процедурам/таблицам.
И дать гарантию, что, к примеру, права "завязаны" чисто на sysprotects и больше никакие внутренние связки не меняются - я бы не рискнул...
...
Рейтинг: 0 / 0
ASE: Копировать права на объект
    #38933389
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikle83komradв одном очень известном банке баги в коде/процедурах правят по живому в продакшене.
Мотивируя это тем, что "нет времени на тесты, у нас работают только проверенные люди [ которые ошибок не допускают ]".

Чего-то у меня пазл не сложился: если такие спецы "проверенные" и ошибок не допускают => откуда баги? :)

автор имел ввиду, что если правят по живому, то правят безошибочно ;)

Mikle83Тут тема какая - SYBASE мягко сказать не договаривает (читай "плохо документирован") по системным процедурам/таблицам.
И дать гарантию, что, к примеру, права "завязаны" чисто на sysprotects и больше никакие внутренние связки не меняются - я бы не рискнул...
в таком случае, можно попробовать следующее:
1) вывод sp_helprotect (либо её код) заносить в таблицу
2) обрабатывать таблицу, конструируя конструкцию grant...
3) результат п.2 выполнять динамически, используя команду "execute @grant_to_run"
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASE: Копировать права на объект
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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