Есть ли способ подавления ошибки SQL03006 в проекте базы данных VS2010? - PullRequest
15 голосов
/ 14 февраля 2011

Прежде всего, я знаю, что полученную ошибку можно устранить, создав эталонный проект (типа Сервер базы данных), а затем ссылаясь на него в моем проекте базы данных ... Тем не менее, я считаю, что это излишне, особенно для небольших команд, где нет особого разделения ролей между разработчиками и администраторами БД. Но давайте оставим это обсуждение на другой раз ... То же самое касается ЦАП ... Не могу использовать Поддерживается ЦАП б / у ограниченных объектов ...

Вопрос Теперь вопрос: могу ли я (и как) отключить ошибку SQL03006 при создании проекта базы данных. В моем случае эта ошибка возникает из-за того, что я создаю некоторых пользователей, чьи учетные записи являются «неразрешенными» ... Я думаю, что это должно быть возможно, я надеюсь, поскольку я «знаю», что учетные записи будут существовать на сервере до того, как я разверну сценарий .. .Я также не хочу поддерживать проект сервера баз данных, просто чтобы разрешить ссылки (у меня нет ничего, кроме логинов на уровне сервера) ...

Обход Используя сценарии до / после развертывания, легко заставить работать сценарий ...

Решение проблемы Вы должны закомментировать пользовательские сценарии (которые используют ссылки для входа в систему) для обхода ... Как только вы это сделаете, .sqlpermissions взорвется, заявив, что нет ссылочных пользователей ... А затем вы должны закомментировать разрешения и поместить их в сценарии после развертывания ... Основным недостатком этого обходного пути является то, что вы не можете использовать сравнение схемы в полном объеме (необходимо указать, чтобы игнорировать пользователей / логины / разрешения)

Итак, все, что я хочу, это 1. поддерживать только проект БД (без ссылок на проекты БД Сервера) 2. отключить / подавить ошибку SQL03006 3. уметь использовать сравнение схем в моем проекте БД

Я спрашиваю о невозможном? :)

Приветствия

P.S. Если кто-то знает о лучших шаблонах / инструментах проекта базы данных VS2010 (для SQL Server 2008 R2), пожалуйста, поделитесь ...

1 Ответ

7 голосов
/ 25 февраля 2011

Есть два обходных пути:

1.Отключите любую проверку схемы (Инструменты> Параметры> Инструменты базы данных> Сравнение схем> SQL Server 200x, затем вкладка Тип объекта) для всего, что связано с пользователем или безопасностью.Это постоянное исправление

2.Пройдите сравнение схемы и отметьте все, что относится к пользователю или безопасности, как Пропустить, а затем сгенерируйте сценарий сравнения SQL.Это исправление для каждой схемы сравнения.

Это должно быть очевидно, но если у вас уже есть сценарии в вашем проекте, которые ссылаются на логины или роли, то удалите их, и они не будут созданы.

...