Упрощение логинов / владельцев / схем / ролей / принципалов и т. Д. SQL Server - PullRequest
0 голосов
/ 16 мая 2009

Я часто разрабатываю небольшие интернет-приложения с использованием ASP.NET и SQL Server 2005. Мои базы данных всегда доступны только одному приложению через веб-службу ASP.NET или что-то подобное.

Когда я разрабатываю приложение и перемещаю базу данных между моим компьютером разработки (SQLExpress 2008) и размещенным сервером (SQL Server 2005) и обратно, я всегда получаю мешанину владельцев / ролей / схем / логинов и т. Д., Которые Кажется, что они появляются и получают контроль над различными частями базы данных.

Я знаю достаточно только о SQL Server, чтобы быть опасным, и я просто хочу спроектировать базы данных, но мне неизменно приходится изменять базу данных и в итоге получаю различные ошибки прав доступа (например, при попытке открыть диаграмму после передачи дб).

Есть ли способ просто сказать SQL Server Management Studio: «Эй, я единственный парень, который собирается использовать эту глупую базу данных, так что просто позвольте мне сделать это?»

Как какая-то команда, которая устанавливает все эти части в 'dbo' или что-то в этом роде?

Ответы [ 4 ]

1 голос
/ 18 мая 2009

К сожалению, есть несколько простых ответов на ваш вопрос, но вам, вероятно, они не понравятся, потому что они потребуют от вас вложений в навыки SQL Server.

Первый инструмент, на который вы должны обратить внимание, это Visual Studio 2008 Database Developer Edition. В этой версии есть инструменты управления, которые вы ищете для управления схемами, пользователями, ... Я думаю, что это теперь включено в Visual Studio 2008 Development Edition

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

1 голос
/ 16 мая 2009

Я предполагаю, что вы используете Windows. Убедитесь, что вы подключаетесь к SQL с проверкой подлинности Windows и дайте вашей учетной записи разрешения Sysadmin. Теперь все, что вы создаете (Create table tablename, Create View viewname) автоматически будет иметь dbo в качестве владельца.

0 голосов
/ 18 мая 2009

Я создаю все объекты, конкретно указывающие, что я хочу, чтобы они были созданы как dbo.

так что для создания прока я делаю

Процедура создания dbo.myprocname

0 голосов
/ 18 мая 2009

Суть проблемы в том, что вы перемещаетесь назад и вперед по самой базе данных. Базы данных на удивление тесно связаны с экземпляром SQL своего хоста с помощью сопоставления имени пользователя и пользователя, а также других настроек, таких как ключи шифрования, использование процедур msdb и планов обслуживания, среди прочего. Вы можете свести к минимуму некоторые последствия, тщательно используя исключительно SQL-аутентификацию, но это не устранит проблему полностью. Реальное решение заключается в том, что у вас должен быть сценарий развертывания и применять изменения к вашей производственной базе (-ам) базы данных посредством выполнения сценариев (-ов) T-SQL, которые вы ранее тестировали на своей базе данных разработки, а не перемещая базу данных «вперед-назад». .

...