Гавриленко Сергей Алексеевич |
---|
А откуда вообще такое пространное желание? |
Попытаюсь обрисовать расклад...
Через самопальный интерфейс разрешил юзеру играться с данными, исключительно в трансакциях.
Юзеры эти в данном случае люди без особых технических знаний, но сами уверены в обратном и им очень хочется повыделываться с данными напрямую (наверное им на выходных попалась брошюрка типа "SQL - это просто" вот их и попёрло)...
Когда юзер_1 считает, что он наваял конечный скрипт, то он отмечает его как готовый и следующий юзер_2 запускает его с коммитом при успешном завершении.
юзер_1 в данномм случае это мажет быть манагер среднего звена, а юзер_2 это или его начальник, или уборщица или кто угодно, кто считает себя достаточно продвинутым в SQL и изявил желание поучаствовать в этой цепочке "многоуровневого контроля".
Как-бы там нибыло - пожелание клиента закон!
В итоге на сервере несколько баз с одинаковой структурой, но с разной заполненностью данными.
ДБ1 - тестовая с минимальными данными
(с полными данными некоторые таблицы имеют до 30 млн. записей и чтобы не утомлять юзера ожиданием отработки запросов)
ДБ2 - тестовая с полными данными на избранные таблицы, но с минимальными на остальные таблицы.
.....
....
ДБх - тестовая с полными данными.
Продуктив - рабочая база, разумеется с полными данными
В начале на каждой базе был свой комплект юзеров, но это закумарило пользователей, т.к. нужно было каждый раз коннектиться по новой.
Разносить по серверам тоже не вариант (долго объяснять особенности конфигурации).
Интерфейс сам перекидывает юзеров с базы на базу в зависимости от степени готовности скрипта и запуска с коммитом, т.е. сколько там этих тестовых баз и к какой они сейчас подключены в конечном итоге вообще не их собачье дело (некоторые искренне уверены, что они все время работают с продуктивной базой).
И всё это работало, до одного момента, пока самые что ни на есть продвинутые юзеры добрались до команд типа use и записей через .dbo. и начали таскать данные из соседних баз.
Вот тут и назрела потребность ограничивать юзеров с одновременным доступам к нескольким базам
Может есть ещё какие-нибудь концептуально другие решения, я не знаю...
Буду рад любому совету.