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

Откуда:
Сообщений: 143
Приветствую,

Я не очень дружу с MSSQL Server. В частности с MSSQL 2008. Но, по роду работы приходится время от времни сталкиваться с ним. Так вот, существует следующая схема.
1. Есть MSSQL Server 2008.
2. На нем есть login.
3. На нем также несколько баз (l2007, l2008, l2009)
4. В этих базах есть пользователи, которые привязанны к логину (пункт 2)
5. Эти базы удаляются и создаются ежесуточно. Причем делает это 3rd-party компания. 
Т.е., компания которая к нашей не имеет никакого отношения, и повлиять на ее программистов я не в состоянии.
Проблема в том, что иногда программисты 3rd-party компании "забывают" (уж не знаю, как это назвать..) добавить нужных пользователей (пункт 4), в базы.. Так вот, может кто-нибудь подсказать как реализовать следующую процедуру:
1. Проверить существование нужного пользователя в базе
2. Если его нет, то создать его и привязать к логину (из пункта 2)
3. Повторить процедуру для следующей базы (goto step 1).
На данный момент, я создал скрипт который тупо создает пользователей и привязывает их к нужному логину. Но, проблема в том, что данный скрипт вылетает с ошибкой, если пользователь существует. Т.е. запускать каждую итерацию цикла по базам в ручную. Так вот, как 2й вариант алгоритма, можно ли отлавливать эксепшин (user exists) и продолжать цикл.

wbr,
lightspeed
30 сен 09, 18:01    [7726562]     Ответить | Цитировать Сообщить модератору
 Re: Проверка существования пользователя в базе, и его создание если он отсутствует.  [new]
Le Peace
Member

Откуда: Москва
Сообщений: 8969
try catch
sys.database_principals
+ if exists
1 окт 09, 12:12    [7728940]     Ответить | Цитировать Сообщить модератору
 Re: Проверка существования пользователя в базе, и его создание если он отсутствует.  [new]
Glory
Member

Откуда:
Сообщений: 104760
sp_helplogins вывдет список логинов во всеми базами, в которых этим логинам назначены пользователи
1 окт 09, 12:20    [7728993]     Ответить | Цитировать Сообщить модератору
 Re: Проверка существования пользователя в базе, и его создание если он отсутствует.  [new]
lightspeed
Member

Откуда:
Сообщений: 143
Спасибо большое, ребята!
-)
Попробую оба совета.

wbr,
lightspeed
1 окт 09, 17:30    [7731193]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить