Как запустить расчет прав через роли пользователей на MSSQL?

Инсталляция, обновления, нюансы БД, администрирование системы

Модератор: mike

Ответить
Аватара пользователя
vo
топ-софт
Сообщения: 63
Зарегистрирован: Чт, 07/05/2009 13:28
Имя Фамилия: Викторович Владимир
Откуда: Галактика
Контактная информация:

Как запустить расчет прав через роли пользователей на MSSQL?

Сообщение vo »

В рамках проблемы 103.3702 Очень медленно идет расчет прав на Oracle 10g.
Привожу только выдержки из описания решения, полное описание можно почитать в документации к патчу.
Было сделано следующее:
Изменился алгоритм расчета прав. Теперь при расчете прав пользователей сначала рассчитываются права на группы, сохраняются в БД и потом используются при расчете прав пользователей. ...

При этом для запуска данного решения необходимо было сделать следующее:
Для перехода на новый метод расчета прав с использованием аппарата ролей СУБД SQL платформ необходимо выполнить следующие действия:
1) Установить в конфигурационном файле комплекса Support параметры
SQLDriver.UseSQLRole = on
SQLDriver.ForceRights = on.
2) Запустить Support и выполнить перерасчет прав на БД для всех пользователей, установив в окне "Параметры расчета прав на БД" все флаги.
3) Для платформы Oracle в модуле Восстановление БД комплекса Support выполнить проверку БД (в режиме исправления) с помощью меню Сервис -> База данных -> Проверка таблиц БД.
Установить следующие параметры проверки:
v Проверка пользователей и прав
v Все таблицы
В результате в СУБД Oracle привилегии пользователей на БД будут приведены в соответствие рассчитанным с учетом прав ролей групп.
4) Для платформы MS SQL Server приведение привилегий пользователей в соответствие рассчитанным с учетом прав ролей групп при необходимости нужно выполнить внешними средствами.

Самой интригующей фразой в этом описании является отсылка к неопределенной процедуре по приведению привилегий пользователей в соответствие рассчитанным с учетом прав ролей групп внешними средствами для платформы MS SQL Server!

Кто видел, слышал, знает, что именно нужно сделать в MSSQL для того, чтобы выполнить это требование?
cruger
топ-софт
Сообщения: 566
Зарегистрирован: Пт, 21/09/2007 15:19
Имя Фамилия: Фёдор Терсин
Откуда: Галактика Софт
Контактная информация:

Re: Как запустить расчет прав через роли пользователей на MSSQL?

Сообщение cruger »

вообще решение было в основном расчитано на запуск его с нуля
механизм перевода был отработан только на oracle, т.к. именно там были основные нарекания от любителей посчитать права с forcerights

набор действий следует из понимания того, в чём же заключается суть этого алгоритма отражения прав в бд
а суть его заключается в следующем:
- пользователей значительно больше чем групп
- если выдавать права только группам, то операций выдачи прав (которые и тормозят) будет значительно меньше
- поэтому насоздаём групп, навыдаём им права, и не будем выдавать и контролировать (!) права пользователей, у которых нет собственных прав

отсутствие выдачи и контроля прав пользователей, у которых нет собственных прав, и является отличительной и оптимизирующей особенностью этого алгоритма

но одновременно появляется особенность - из-за отсутствия контроля выданные права пользователя при переходе на новый алгоритм никуда не деваются

на оракле решили написать мутный код по поддержке перехода
на мсскль предлагается провести зачистку этих прав вручную
при переходе на обычный алгоритм с группами и их правами придётся тоже решать вручную

т.е. на вопрос "что именно" нельзя ответить больше чем написано: "привести в соответствие"
исходя из понимания того, какие права должны быть у групп, какие у пользователей и у каких пользователей и нужно всё это сделать

впрочем, можно ничего не делать, в худшем случае пользователи получат лишние права при работе из внешних средств
Аватара пользователя
vo
топ-софт
Сообщения: 63
Зарегистрирован: Чт, 07/05/2009 13:28
Имя Фамилия: Викторович Владимир
Откуда: Галактика
Контактная информация:

Re: Как запустить расчет прав через роли пользователей на MSSQL?

Сообщение vo »

Появилась идея:
1) полностью отключить систему протект;
2) включить опцию SQLDriver.UseSQLRole = on;
3) рассчитать права;
Не приведет ли это к желаемому результату, а именно: у пользователя не будет индивидуальных прав, а будут только выданные групповые права?
cruger
топ-софт
Сообщения: 566
Зарегистрирован: Пт, 21/09/2007 15:19
Имя Фамилия: Фёдор Терсин
Откуда: Галактика Софт
Контактная информация:

Re: Как запустить расчет прав через роли пользователей на MSSQL?

Сообщение cruger »

При отключении протекта розданные права не снимаются. Просто всем пользователям назначаются роли securityadmin и db_owner или ставится алиас на dbo. Так что зачистить розданные права таким образом вряд ли удастся.
Ответить