Как мне обращаться с пользователями в проектах базы данных?

У нас есть две среды — среда разработки и производственная среда.

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

Я думал включить сценарии, которые переключаются на основе переменных SQLCMD для создания соответствующих пользователей, но это кажется довольно неприятным.

Я чувствую, что упускаю какую-то часть проекта базы данных, так как это похоже на ситуацию, которая будет возникать везде и всегда. Есть ли в проектах баз данных возможность обрабатывать создание разных наборов пользователей/ролей в разных средах?

Существует существующий вопрос о 2008R2, который, кажется, указывает на то, что это не так, но я оптимистично настроен, что, возможно, в 2012 году произошли некоторые изменения. для обеспечения этой функциональности.


person Jeff    schedule 18.11.2014    source источник
comment
возможный дубликат Как обрабатывать пользователей и логины в Проект базы данных Visual Studio?   -  person John Saunders    schedule 19.11.2014
comment
@JohnSaunders этот вопрос был на 2008 год; это за 2012 год. Тот факт, что ответ тот же, не имеет значения. Как упоминалось в моем вопросе...   -  person Jeff    schedule 19.11.2014
comment
Ну нет, это не имеет значения. Это тот же ответ, потому что это область, в которой проекты SSDT/базы данных с тех пор не изменились. Нам не нужен новый вопрос для каждой новой версии SSDT, пока Microsoft не устранит этот недостаток.   -  person John Saunders    schedule 19.11.2014
comment
Я не понимаю, почему. Зашел на сайт, увидел тот ответ и подумал Хм, то есть конкретно за 2008 год, судя по тегам. То же самое верно и для 2012 года? Возможно, этот вопрос следует переработать, чтобы это был общий вопрос (удалите тег), но в его нынешнем виде они не дублируются - ответ на этот вопрос не дал ответа на мой вопрос.   -  person Jeff    schedule 19.11.2014


Ответы (1)


К сожалению, это одна из областей, в которой отсутствует SSDT. Вам нужно будет по-другому настроить свои разрешения и пользователей. Я описал метод, который мы использовали здесь (с рекомендацией Джейми Томсону за идею): per.html" rel="nofollow">http://schottsql.blogspot.com/2013/05/ssdt-setting-different-permissions-per.html

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

person Peter Schott    schedule 19.11.2014
comment
Круто, так что мало что изменилось с тех пор, как вы тогда ответили на другой вопрос :( в любом случае спасибо за ответ. - person Jeff; 19.11.2014
comment
К сожалению, совсем не много. Судя по всему, управление пользователями/логинами теперь проще с SSDT, если они одинаковы во всех средах, но не в том случае, если они разные. Тем не менее, я попытался объединить весь свой опыт в сообщение в блоге, чтобы его было немного легче собрать. Я также немного подправил сценарии. - person Peter Schott; 19.11.2014