Добрый день!
В системе 427 активных учетных записи, пересчет прав (безусловный) по ним шел 10 часов, насколько это приемлемо?
и какие есть средства для оптимизации этого процесса?
Спасибо!
Модераторы: m0p3e, edward_K, Модераторы
pk писал(а):Только использование ролей:
[SQLDriver]
ForceRights=on
UseSQLRole=on
Для >3000 пользователей полный пересчёт занимает порядка 2 часов, но требуется нечасто (хотя "гал" последние годы увлеклась докомпиляцией БД, после чего необходим пересчёт прав всех пользователей).
AlexMK писал(а):Приветствую.
Подмечено верно.
Однако Галактике и не нужно знать на каком уровне и каким способом тому или иному пользователю (учетке) выданы права на тот или иной объект в БД.
Она этого никак не "понимает".
Главное, что право или привилегия есть.
В момент разбора запросов от клиента сервер оценивает его права и привилегии, собранные из всех возможных "источников", если можно так сказать, в своем словаре.
Своем СИСТЕМНОМ словаре.
А Галактика, если и оценивает допустимые пользователю деяния, то по своему прикладному словарю, и то только в части ФУНКЦИОНАЛЬНЫХ возможностей прикладной части.
Ну а вот сапорту и чеке нужно знать КАКИМ именно образом выдавать права и привилегии НА УРОВНЕ СЛОВАРЯ СУБД, тому или иному пользователю.
При чём, замечу, что в принципе, одному пользователю права могут быть розданы непосредственно на его персональную роль клонированием прав из группы (считали с параметром USESQLRole=OFF), а потом параметр поменяли на ON и посчитали не всех, а несколько других пользователей - и им права раздадутся через групповые роли.
И все они будут работать с точки зрения СУБД совершенно одинаково - на сессию действуют права, суть которых, конкатенация всех выданных прав всеми возможными способами.
(по секрету - если на уровне СУБД дать юзеру ДБА и не дать прав на таблицы через сапорт, то все в Галактике будет работать, хотя Галактика формально ему прав и не давала- главное, чтобы на функционалы права были выданы )
Хотя чека, конечно, выполняя проверку ВСЕХ будет ориентироваться на один метод и те пользователи, которые имеют права, выданные не тем, который чека считает текущим, будут посчитаны неверными (по правам) и будут исправлены путем отъема всех предыдущих прав и выдачей их же, но уже тем способом, который сейчас сконфигурирован.
Как-то так
maikl писал(а):Если установить
UseSQLRole=on
Надо еще что то где то настраивать ?
maikl писал(а):Спасибо
3-й пункт непонятен. Что такое внешними средствами ?
Chernikov писал(а):maikl писал(а):Спасибо
3-й пункт непонятен. Что такое внешними средствами ?
SQL Server Management Studio например
maikl писал(а):Chernikov писал(а):maikl писал(а):Спасибо
3-й пункт непонятен. Что такое внешними средствами ?
SQL Server Management Studio например
А какой скрипт запускать и где его брать ?
edward_K писал(а):Если вы про протект, то будут предоставлены максимально возможные. Если одни по чтению, а другие по записи, права получит по записи.
В протекте можете посмотреть отчет по рассчитанным правам пользователя. SQL должен сработать также.
Сейчас этот форум просматривают: Google [Bot] и гости: 2