публикация базы данных SQL 2005 на удаленном хосте

Я создал веб-сайт ASP.NET 2.0, и он использует две базы данных, а именно aspnetdb и my_db. Я запустил инструмент aspnet_regsql.exe -E -S localhost -A mr и получил aspnetdb.mdf в своем проекте. Я использовал его для предоставление функций входа на мой сайт. Теперь я хочу опубликовать сайт на удаленном сервере хостинга, который я купил. Они предоставили мне информацию о сервере, к которому я должен подключиться, и я успешно смог это сделать. Теперь сценарий таков: -

1) Мой сайт поддерживает одну базу данных MS SQL Server, а я использую две базы данных. Как я могу объединить эти две базы данных в одну, а также обновить все страницы с изменением, происходящим в доступе к соответствующей базе данных, а затем опубликовать ее.

2) Я хочу переименовать базу данных aspnetdb в другое имя, так как я получаю сообщение об ошибке, когда публикую базу данных с именем aspnetdb на сервере (он говорит, что база данных уже существует, но я не смог ее найти). Итак, как я могу эффективно переименовать его.

3) Как правильно опубликовать объединенную базу данных в удаленном месте, нужно ли также учитывать строки подключения? До сих пор, поскольку я был локальным пользователем, я не предоставлял имя пользователя и пароль, но на сайте я должен был создать пользователя для SQL-сервера. Итак, как я могу безопасно интегрировать его в свой проект.

Надеюсь, я правильно объяснил свою проблему, жду решения.

Спасибо


person Anirudh Goel    schedule 13.04.2009    source источник


Ответы (2)


Здесь есть несколько вопросов, поэтому я разобью их по частям.

1)Как мне объединить эти две базы данных в одну

Devmania упомянула Red Gate Data Compare, поэтому я упомяну Quest Toad для SQL Server, который также делает то же самое. . Однако отказ от ответственности - я работаю в Quest. Вы можете скачать бета-версию v4.5, которая сейчас бесплатна и имеет функции сравнения данных и схем.

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

К сожалению, ни один инструмент не изменит ваш код.

2) Я хочу переименовать базу данных aspnetdb в другое имя, так как получаю сообщение об ошибке при публикации базы данных с именем aspnetdb на сервере (говорится, что база данных уже существует, но мне не удалось ее найти). Это). Итак, как я могу эффективно переименовать его.

Перейдите в SQL Server Management Studio, подключитесь к серверу базы данных, щелкните правой кнопкой мыши имя базы данных и выберите «Переименовать».

3) Как правильно опубликовать объединенную базу данных в удаленном расположении, нужно ли также учитывать строки подключения?

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

Поскольку я был локальным пользователем, я не предоставлял имя пользователя и пароль, но на сайте я должен был создать пользователя для SQL-сервера. Итак, как я могу безопасно интегрировать его в свой проект?

В SQL Server Management Studio зайдите в базу данных, Безопасность, Логины. Вы можете щелкнуть там правой кнопкой мыши, создать новый логин и использовать аутентификацию SQL. Укажите имя пользователя и пароль, и вы сможете предоставить логину только те разрешения, которые вам нужны. Я бы использовал отдельный для вашего веб-приложения, в котором есть только db_datareader и db_datawriter, а не db_owner. Владелец имеет возможность изменить схему, и ваше приложение не должно этого делать. В случае, если вас взломают и кто-то украдет имя пользователя/пароль, по крайней мере, они не изменят вашу схему.

person Brent Ozar    schedule 13.06.2009

чувак, лучший инструмент, который изменил мою жизнь, — это Redgate Data Compare. он проверит обе БД и синхронизирует что-либо в них, а также предоставит вам SQL-скрипт для этого.

надеюсь это поможет.

person DevMania    schedule 13.04.2009