пересчет прав пользователей
Модераторы: m0p3e, edward_K, Модераторы
пересчет прав пользователей
Добрый день!
В системе 427 активных учетных записи, пересчет прав (безусловный) по ним шел 10 часов, насколько это приемлемо?
и какие есть средства для оптимизации этого процесса?
Спасибо!
В системе 427 активных учетных записи, пересчет прав (безусловный) по ним шел 10 часов, насколько это приемлемо?
и какие есть средства для оптимизации этого процесса?
Спасибо!
-
- Постоянный обитатель
- Сообщения: 135
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Москва Связьтранснефть
Re: пересчет прав пользователей
Только использование ролей:
[SQLDriver]
ForceRights=on
UseSQLRole=on
Для >3000 пользователей полный пересчёт занимает порядка 2 часов, но требуется нечасто (хотя "гал" последние годы увлеклась докомпиляцией БД, после чего необходим пересчёт прав всех пользователей).
[SQLDriver]
ForceRights=on
UseSQLRole=on
Для >3000 пользователей полный пересчёт занимает порядка 2 часов, но требуется нечасто (хотя "гал" последние годы увлеклась докомпиляцией БД, после чего необходим пересчёт прав всех пользователей).
С ув..
Re: пересчет прав пользователей
Реализовал использование ролей на тестовой БД, действительно процесс пересчета стал занимать минуты, но хотелось бы понять как Галактика понимает что нужно работать именно с ролями SQL, мы же не прописываем UseSQLPole в конфигурационном файле пользователя Галактики, а только в Supporte, верно?pk писал(а):Только использование ролей:
[SQLDriver]
ForceRights=on
UseSQLRole=on
Для >3000 пользователей полный пересчёт занимает порядка 2 часов, но требуется нечасто (хотя "гал" последние годы увлеклась докомпиляцией БД, после чего необходим пересчёт прав всех пользователей).
Re: пересчет прав пользователей
Приветствую.
Подмечено верно.
Однако Галактике и не нужно знать на каком уровне и каким способом тому или иному пользователю (учетке) выданы права на тот или иной объект в БД.
Она этого никак не "понимает".
Главное, что право или привилегия есть.
В момент разбора запросов от клиента сервер оценивает его права и привилегии, собранные из всех возможных "источников", если можно так сказать, в своем словаре.
Своем СИСТЕМНОМ словаре.
А Галактика, если и оценивает допустимые пользователю деяния, то по своему прикладному словарю, и то только в части ФУНКЦИОНАЛЬНЫХ возможностей прикладной части.
Ну а вот сапорту и чеке нужно знать КАКИМ именно образом выдавать права и привилегии НА УРОВНЕ СЛОВАРЯ СУБД, тому или иному пользователю.
При чём, замечу, что в принципе, одному пользователю права могут быть розданы непосредственно на его персональную роль клонированием прав из группы (считали с параметром USESQLRole=OFF), а потом параметр поменяли на ON и посчитали не всех, а несколько других пользователей - и им права раздадутся через групповые роли.
И все они будут работать с точки зрения СУБД совершенно одинаково - на сессию действуют права, суть которых, конкатенация всех выданных прав всеми возможными способами.
(по секрету - если на уровне СУБД дать юзеру ДБА и не дать прав на таблицы через сапорт, то все в Галактике будет работать, хотя Галактика формально ему прав и не давала
- главное, чтобы на функционалы права были выданы )
Хотя чека, конечно, выполняя проверку ВСЕХ будет ориентироваться на один метод и те пользователи, которые имеют права, выданные не тем, который чека считает текущим, будут посчитаны неверными (по правам) и будут исправлены путем отъема всех предыдущих прав и выдачей их же, но уже тем способом, который сейчас сконфигурирован.
Как-то так![Smile :)](./images/smilies/078.gif)
Подмечено верно.
Однако Галактике и не нужно знать на каком уровне и каким способом тому или иному пользователю (учетке) выданы права на тот или иной объект в БД.
Она этого никак не "понимает".
Главное, что право или привилегия есть.
В момент разбора запросов от клиента сервер оценивает его права и привилегии, собранные из всех возможных "источников", если можно так сказать, в своем словаре.
Своем СИСТЕМНОМ словаре.
А Галактика, если и оценивает допустимые пользователю деяния, то по своему прикладному словарю, и то только в части ФУНКЦИОНАЛЬНЫХ возможностей прикладной части.
Ну а вот сапорту и чеке нужно знать КАКИМ именно образом выдавать права и привилегии НА УРОВНЕ СЛОВАРЯ СУБД, тому или иному пользователю.
При чём, замечу, что в принципе, одному пользователю права могут быть розданы непосредственно на его персональную роль клонированием прав из группы (считали с параметром USESQLRole=OFF), а потом параметр поменяли на ON и посчитали не всех, а несколько других пользователей - и им права раздадутся через групповые роли.
И все они будут работать с точки зрения СУБД совершенно одинаково - на сессию действуют права, суть которых, конкатенация всех выданных прав всеми возможными способами.
(по секрету - если на уровне СУБД дать юзеру ДБА и не дать прав на таблицы через сапорт, то все в Галактике будет работать, хотя Галактика формально ему прав и не давала
![Smile :)](./images/smilies/078.gif)
Хотя чека, конечно, выполняя проверку ВСЕХ будет ориентироваться на один метод и те пользователи, которые имеют права, выданные не тем, который чека считает текущим, будут посчитаны неверными (по правам) и будут исправлены путем отъема всех предыдущих прав и выдачей их же, но уже тем способом, который сейчас сконфигурирован.
Как-то так
![Smile :)](./images/smilies/078.gif)
Re: пересчет прав пользователей
Спасибо большое! Вы для меня все окончательно прояснили! Я Вам очень благодарен!AlexMK писал(а):Приветствую.
Подмечено верно.
Однако Галактике и не нужно знать на каком уровне и каким способом тому или иному пользователю (учетке) выданы права на тот или иной объект в БД.
Она этого никак не "понимает".
Главное, что право или привилегия есть.
В момент разбора запросов от клиента сервер оценивает его права и привилегии, собранные из всех возможных "источников", если можно так сказать, в своем словаре.
Своем СИСТЕМНОМ словаре.
А Галактика, если и оценивает допустимые пользователю деяния, то по своему прикладному словарю, и то только в части ФУНКЦИОНАЛЬНЫХ возможностей прикладной части.
Ну а вот сапорту и чеке нужно знать КАКИМ именно образом выдавать права и привилегии НА УРОВНЕ СЛОВАРЯ СУБД, тому или иному пользователю.
При чём, замечу, что в принципе, одному пользователю права могут быть розданы непосредственно на его персональную роль клонированием прав из группы (считали с параметром USESQLRole=OFF), а потом параметр поменяли на ON и посчитали не всех, а несколько других пользователей - и им права раздадутся через групповые роли.
И все они будут работать с точки зрения СУБД совершенно одинаково - на сессию действуют права, суть которых, конкатенация всех выданных прав всеми возможными способами.
(по секрету - если на уровне СУБД дать юзеру ДБА и не дать прав на таблицы через сапорт, то все в Галактике будет работать, хотя Галактика формально ему прав и не давала- главное, чтобы на функционалы права были выданы )
Хотя чека, конечно, выполняя проверку ВСЕХ будет ориентироваться на один метод и те пользователи, которые имеют права, выданные не тем, который чека считает текущим, будут посчитаны неверными (по правам) и будут исправлены путем отъема всех предыдущих прав и выдачей их же, но уже тем способом, который сейчас сконфигурирован.
Как-то так
Re: пересчет прав пользователей
Если установить
UseSQLRole=on
Надо еще что то где то настраивать ?
UseSQLRole=on
Надо еще что то где то настраивать ?
Re: пересчет прав пользователей
1) Установить в конфигурационном файле комплекса Support параметрыmaikl писал(а):Если установить
UseSQLRole=on
Надо еще что то где то настраивать ?
SQLDriver.UseSQLRole = True
SQLDriver.ForceRights = True
2) Запустить Support и выполнить перерасчет прав на БД для всех пользователей и групп, установив в окне "Параметры расчета прав на БД" флаги:
1. безусловный пересчет
2. пересчет прав членов группы (если выполняется расчет прав групп)
или
2. пересчет прав иерархии групп пользователя (если выполняется расчет прав пользователей)
3. пересчитывать вхождение в группы
3) Для платформы MS SQL Server приведение привилегий пользователей в соответствие рассчитанным с учетом прав ролей групп при необходимости нужно выполнить внешними средствами.
После расчета прав, выполните проверку таблиц БД в модуле Восстановление БД с параметрами "Проверка пользователей и прав".
Параметры проверки:
Проверка контрольной суммы
Проверка структуры таблиц, проверка корректности индексов, проверка корректности триггеров, проверка мемо-полей
Re: пересчет прав пользователей
Спасибо
3-й пункт непонятен. Что такое внешними средствами ?
3-й пункт непонятен. Что такое внешними средствами ?
Re: пересчет прав пользователей
SQL Server Management Studio напримерmaikl писал(а):Спасибо
3-й пункт непонятен. Что такое внешними средствами ?
Re: пересчет прав пользователей
А какой скрипт запускать и где его брать ?Chernikov писал(а):SQL Server Management Studio напримерmaikl писал(а):Спасибо
3-й пункт непонятен. Что такое внешними средствами ?
Re: пересчет прав пользователей
нужно будет удалять роли старого типа в СУБД средствами Management Studio MS SQL Servermaikl писал(а):А какой скрипт запускать и где его брать ?Chernikov писал(а):SQL Server Management Studio напримерmaikl писал(а):Спасибо
3-й пункт непонятен. Что такое внешними средствами ?
Так как в инструкции сказано о UseSQLRole - Рекомендуется устанавливать требуемое значение параметра до начала настройки СРПД , потому что при смене значений в процессе эксплуатации и последующем пересчете прав, поли нового типа в СУБД создадутся, а старого не удаляться.
Это не обязательная процедура, старые роли лучше не удаляйте. Ни на что не влияет.
Главное, чтобы не было индивидуальных прав в Правах доступа.
Re: пересчет прав пользователей
Добрый день! При существовании у пользователя индивидуальных и групповых прав они суммируются. А если права противоречивы, то у каких будет приоритет?
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5185
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: пересчет прав пользователей
Если вы про протект, то будут предоставлены максимально возможные. Если одни по чтению, а другие по записи, права получит по записи.
В протекте можете посмотреть отчет по рассчитанным правам пользователя. SQL должен сработать также.
В протекте можете посмотреть отчет по рассчитанным правам пользователя. SQL должен сработать также.
Re: пересчет прав пользователей
Спасибо, понял! При использовании sql ролей для прав пользователей задался вопросом - почему в документации написано: Главное, чтобы не было индивидуальных прав в Правах доступа?edward_K писал(а):Если вы про протект, то будут предоставлены максимально возможные. Если одни по чтению, а другие по записи, права получит по записи.
В протекте можете посмотреть отчет по рассчитанным правам пользователя. SQL должен сработать также.
Поэтому и возник вопрос, что происходит с противоречивыми правами, если одни групповые, а другие индивидуальные