Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Проблема с правами  [new]
grigoriy-sql
Member

Откуда:
Сообщений: 4
Здравствуйте. Есть такая проблема. Имеется MS SQL Server 2005 Standard Edition. В нем есть основная база и база, являющаяся копией основной, но используемая для тестирования. Назовем первую base, вторую base-test. С первой работают пользователи 1С, вторая нужна для предварительного тестирования изменений (правки в конфигурации 1С) перед последующим переносом в основную. Необходимо сделать программеру права на основную для резервного копирования и на тестовую полные. Выставил в MSSMS соответственно права 1-й базы db_backupoperator и db_owner для второй. Так вот, проблема заключается в том, что когда программер восстанавливает backup первой базы в тестовую, то соответственно и права для него на тестовую становятся как у первой, т.е. db_backupoperator. И, как следствие, он не может производить дальше операции restore над тестовой. Необходимо сделать так, чтобы права сохранялись. Были предприняты попытки решения проблемы. Варианты:
1) думал написать триггер. На событие restore триггера нет, поэтому решил на LOGON. Но нельзя в триггере юзать функцию use <base>. Он задается изначально для текущей базы. Но при восстановлении базы base-test из бекапа base сотрется и триггер. Поэтому вопрос, как определить триггер в базе master, который бы менял права пользователя в базе base-test? Можно ли вообще это сделать? Какие альтернативы?
2) создать отдельный экземпляр для тестовой базы и дать админские права программеру. Вариант отложен, т.к. это требует дополнительные ресурсы сервера, а они ограничены.
Заранее, спасибо.
5 июл 11, 14:36    [10925053]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с правами  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31983
grigoriy-sql
2) создать отдельный экземпляр для тестовой базы и дать админские права программеру. Вариант отложен, т.к. это требует дополнительные ресурсы сервера, а они ограничены.
Лучьше так.

Ещё можно создать джоб для восстановления базы, в котором восстанавливать базу и раздавать права.
А программеру дать права на запуск джоба
5 июл 11, 15:15    [10925465]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с правами  [new]
grigoriy-sql
Member

Откуда:
Сообщений: 4
alexeyvg,

Я так понял, на джобе это делается через transact-sql. Но резервные копии для восстановления могут быть различными - от различных дат. Т.е. каждый раз надо будет менять параметры джоба... Жду еще вариантов, если не будет, буду делать отдельный экземпляр :(.
5 июл 11, 16:07    [10926148]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с правами  [new]
USBcab
Member

Откуда:
Сообщений: 48
grigoriy-sql,
ну так если проблема что имена файлов бэкапов разные и привязаны к дате, то это не проблема.
5 июл 11, 16:14    [10926210]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с правами  [new]
grigoriy-sql
Member

Откуда:
Сообщений: 4
USBcab,

У человека не будет доступа напрямую к папке, где расположены файлы бекапов - только через sql-сервер. Который в таком случае должен каким-то образом выдавать диалог на открытие файла бекапа. Я так понимаю, в джобе этого не сделать. Там пишешь конкретно - делать то-то и то-то. Никаких запросов выдавать он не будет, на то он и джоб. Нужно будет задавать вручную имя файла. Т.е. прогер будет гадать, какие там цифры и в каком порядке... Я так понимаю, просветите, если не прав.
5 июл 11, 16:26    [10926334]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с правами  [new]
DeColo®es
Member

Откуда: Москва
Сообщений: 5503
Блог
можно создать где-нибудь табличку, в которую программер будет писать дату или сразу имя файла.
JOB соответственно будет читать параметр из этой таблицы.
5 июл 11, 16:29    [10926362]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с правами  [new]
USBcab
Member

Откуда:
Сообщений: 48
grigoriy-sql,
это смотря как настроены бэкапы.
Если они делаются например раз в день, то логично что имя будет выглядеть как-то так: бэкап_ДДММГГГГ, соответственно можно обычным dateadd(d, -1, getdate()) вычислить часть _ДДММГГГГ.
5 июл 11, 16:34    [10926422]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с правами  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31983
grigoriy-sql
alexeyvg,

Я так понял, на джобе это делается через transact-sql. Но резервные копии для восстановления могут быть различными - от различных дат. Т.е. каждый раз надо будет менять параметры джоба... Жду еще вариантов, если не будет, буду делать отдельный экземпляр :(.
Ну да, если разные, то неудобно...

Можно сделать процедурку в мастере. Параметр - имя файла, без параметра выдаёт список файлов.
Там вроде модно так права настроить.
5 июл 11, 16:40    [10926480]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с правами  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31983
alexeyvg
Можно сделать процедурку в мастере. Параметр - имя файла, без параметра выдаёт список файлов.
Там вроде модно так права настроить.
Ещё можно сделать SSIS пакет, там можно задавать параметры

Но конечно инстанс лучьше.
5 июл 11, 16:42    [10926490]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с правами  [new]
grigoriy-sql
Member

Откуда:
Сообщений: 4
USBcab,

Бекап не обязательно восстанавливаться из последней копии будет. Плюс нужно учесть, что используется совместно полное и дифференциальное копирования. Теперь представьте, что программеру нужно восстановиться на базу месяц назад. Ему нужно каким-либо образом высчитать дату сделанной полной копии, затем высчитать дату дифференциальной копии... А если ему при поиске какой-нибудь проблемы нужно будет много раз за день это проделать.... И да, совсем забыл сразу отметить, программер подключается удаленно, т.е. с помощью MSMMS Express, где нету джобов то вообще... Ладно, спасибо всем. Думаю, буду экземпляр новый создавать...
5 июл 11, 16:45    [10926525]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить