Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Vassillume Member Откуда: Сообщений: 4 |
Изучаю ADO.NET по книге. В книге все примеры кода используют базу данных Northwind. У меня этой базы не было, я ее скачал. Сама база, просто учебная и ничего важного в ней нет. Но она мне нужна для работы с кодом из книги. При подключении в Visual Studio 2010 этой базы, она не подключается и выходит ошибка. При подключении к этой базе из программы выходит такая ошибка: Не удается открыть базу данных "NORTHWND", запрашиваемую именем входа. Не удалось выполнить вход. Ошибка входа пользователя "WIN-SJTVGLOOT9E\User". Если кто знает как можно решить эту проблему, помогите пожалуйста мне. |
24 ноя 17, 08:28 [20979800] Ответить | Цитировать Сообщить модератору |
gfswg
Guest |
Vassillume, https://social.msdn.microsoft.com/Forums/ru-RU/f8e52899-fcaa-4fe4-a2b7-cf292c5b0682/-vs2013?forum=aspnetru |
24 ноя 17, 08:54 [20979824] Ответить | Цитировать Сообщить модератору |
Yasha123 Member Откуда: Сообщений: 1955 |
Vassillume, откройте еррор лог сервера (из студии или нотепадом), найдите там error 18456, в соседней стррке в явном виде написана причина |
24 ноя 17, 09:26 [20979861] Ответить | Цитировать Сообщить модератору |
Yasha123 Member Откуда: Сообщений: 1955 |
но скорее всего, это даже не 18456, это просто вы не отмапили логин, под которым ходит программа, в эту базу. зайдите на сервер под админом, use northwind; create user... from login... ну и в роль его засуньте, кто вам нужкн, ридер/райтер/овнер? |
24 ноя 17, 09:30 [20979869] Ответить | Цитировать Сообщить модератору |
Vassillume Member Откуда: Сообщений: 4 |
Yasha123, Пожалуйста объясните мне поподробнее, как зайти на сервер. Я еще только не давно начал изучать работу с базами данных и не все еще понимаю. Я посмотрел файл ERRORLOG, вот текст ошибки: Вход Ошибка: 18456, серьезность: 14, состояние: 38. Вход Login failed for user 'WIN-SJTVGL0OT9E\User'. Причина: не удалось открыть явно указанную базу данных. [КЛИЕНТ: <local machine>] Я не очень много что понял из этого файла. Если вам не трудно помогите разобраться. Я обычно в студии из меню "Данные" подключаюсь к серверу. Я еще не совсем правильно и хорошо знаю язык SQL и его синтаксис. Я читал в нете, что можно подключиться к серверу и выполнить команды в командной строке, я пробовал, но у меня не получилось, выходили ошибки в командной строке. Я попробую в студии ввести (как я понял команды), но я не совсем уверен, что нужно писать здесь: use northwind; create user... (а что дальше "Имя пользователя" или что другое?) from login... (а здесь что писать?). Помогите пожалуйста разобраться с моей проблемой и понять мои ошибки. |
24 ноя 17, 18:49 [20981951] Ответить | Цитировать Сообщить модератору |
Andy_OLAP Member Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион Сообщений: 3151 |
Вы скачали архив с бэкапом или сам бэкап SQL базы (файл .bak). Теперь Вам нужно установить SQL сервер, развернуть на нем базу SQL (работать в студии SSMS), добавить своего локального пользователя WIN-SJTVGLOOT9E\User в logins в закладке Security, дать ему права sysadmin. После этого Visual Studio 2010 в проекте попробует зацепиться на дефолтный инстанс MSSQLSERVER под Вашей учеткой, найдет наконец-таки сам SQL сервер, тот предоставит данные из базы данных - и все заработает. Это если вкратце, без нюансов. |
||
24 ноя 17, 19:14 [20982002] Ответить | Цитировать Сообщить модератору |
Andy_OLAP Member Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион Сообщений: 3151 |
Вы преодолели половину пути. SQL сервер установлен, база скорее всего развернута. Осталось самое малое - добавить в администраторы всех БД на это SQL сервере свою учетную Windows запись. |
||
24 ноя 17, 19:16 [20982004] Ответить | Цитировать Сообщить модератору |
Vassillume Member Откуда: Сообщений: 4 |
Andy_OLAP, я вначале скачал с сайта Microsoft базу данных, она состоит из трех файлов: NORTHWND.LDF, NORTHWND.LDF, instnwnd.sql. Потом с другого сайта я скачал другие два файла базы данных: Northwind.bak, northwind.sql. Я открыл в Visual Studio 2010 файл instnwnd.sql, подключился к серверу, и выполнил код SQL. На сервере в папке DATA появились два файл northwnd.ldf, northwnd.mdf. Сервер я сам не устанавливал, я думаю когда, я устанавливал Visual Studio 2010, тогда и был установлен сервер. Если вы называете "Развернуть базу данных", открыть в студии файл базы данных, подключиться к серверу, и выполнить код SQL, значит я ее развернул. Теперь осталось, "добавить в администраторы всех БД на этом SQL сервере свою учетную Windows запись". А вот как это сделать я к сожалению не знаю, Если вам не трудно, пожалуйста объясните поподробнее, как мне это сделать. Я вообще пока не знаю как работать с сервером. |
25 ноя 17, 02:28 [20982557] Ответить | Цитировать Сообщить модератору |
Владислав Колосов Member Откуда: Сообщений: 8350 |
Vassillume, емнип VS2010 содержит выбираемый специальной галкой SQL2008 express. Может быть Вы галку не установили при установке студии. VS2015 студия и выше ставил SQL LocalServer без всякого согласия. Давно уже есть бесплатная Community редакция студии, можете ставить и экспериментировать. |
25 ноя 17, 18:56 [20983262] Ответить | Цитировать Сообщить модератору |
Andy_OLAP Member Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион Сообщений: 3151 |
Пойдем по шагам. Вы установили вместе с VS 2010 в комплекте службу управления базами данных SQL Express 2008. При установке был выбран режим смешанной авторизации - помимо внутренних SQL учетных записей (из которых самая главная, с правами суперадмина, называется "sa") можно добавлять Windows учетные записи и наделять их правами таких же суперадминистраторов внутри сервера баз даннных - что и произошло. Иначе Вы бы не смогли скриптом создать базу данных - а Вы ее создали. Файл mdf содержит данные в виде таблицы со строками и обвязку к ним на языке T-SQL (виртуальные представления таблиц "view", процедуры и функции, на диалекте, которая придумала фирма Microsoft, например, у фирмы-конкурента Oracle их диалект называется PL/SQL, у базы данных PostgreSQL - PLpg/SQL и так далее). Файл ldf содержит служебные записи по фиксации изменений с данными (это журнал, который позволяет в случае любого сбоя "отыграть" назад противоречивые изменения в разных таблицах, пока не будет достигнуто адекватное состояние во всей базе). Теперь Вы из студии VS 2010 под своим пользователем пытаетесь соединиться с базой NORTHWND - и ничего не происходит. Вариантов тут 4. 1. После рестарта сервера служба SQL Express оказалось в режиме ручного запуска (manual), а не автоматического - и не запустилась сама. Поэтому и сервер не ловит соединения к базе и ничего не отвечает. Нужно зайти в управление службами Windows (пункт Services раздела администрирования в панели управления) и стартануть службу. Это вряд ли, но нужно проверить. 2. Вы поменяли права доступа на каталоги NTFS, где лежат файлы базы данных и служебные файлы SQL Express - и теперь он вообще не может стартануть даже в автоматическом режиме, потому что сразу останавливается с ошибкой. Это вряд ли, но нужно проверить. 3. Вы в соединении к БД Northwind внутри VS 2010 случайно поменяли пункт - студия по дефолту соединяется с именованным инстансом ".\SQLExpress", а Вы выбрали просто ".", при этом у Вас раньше был установлен еще один инстанс с другим именем (например "MSSQLSERVER"), который и является дефолтным, а все остальные инстансы нужно явно указывать. Не указываете явно - и студия VS цепляется не к тому инстансу. Это вряд ли, но нужно проверить. 4. После установки Вы стали работать другим пользователем - ставили студию от WIN-SJTVGLOOT9E\Administrator, а работаете теперь от WIN-SJTVGLOOT9E\User. Это самый правильный вариант. Возможно, Вы скрипт в VS 2010 прогоняли, когда она была запущена от имени WIN-SJTVGLOOT9E\Administrator - поэтому база данных была создана. В этом случае Вам нужно скачать отдельно студию SSMS для управления базами данных MSSQL. Запустить в режиме "run as administrator" или явно от имени учетной записи WIN-SJTVGLOOT9E\Administrator, далее зайти в пункт logins и добавить Windows учетную запись WIN-SJTVGLOOT9E\User в список распознаваемых сервером с правами sysadmin (максимально возможные права). И далее работать с примерами кода в VS 2010 от имени WIN-SJTVGLOOT9E\User. Это если очень вкратце и очень упрощенно. |
||
25 ноя 17, 20:54 [20983440] Ответить | Цитировать Сообщить модератору |
Andy_OLAP Member Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион Сообщений: 3151 |
Vassillume, Что скачать последнюю нормальную версию SSMS - открываете по ссылке официальный сайт Microsoft и выбираете версию 17.2 (сборка 14.0.17177.0), она позволяет нормально работать как с установленным Вами SQL Express 2008, так и с самыми свежими версиями. |
25 ноя 17, 21:11 [20983472] Ответить | Цитировать Сообщить модератору |
Vassillume Member Откуда: Сообщений: 4 |
Andy_OLAP и все те кто принимал участие в обсуждении и помогал мне своими советами, благодарю вас, большое вам спасибо за вашу помощь мне!!! Не без вашей помощи нашол решение моей проблемы. Как я уже писал, что я не давно начал изучать работу с базами данных. В начале я не мог подключиться к серверу. В книге в коде было указано имя сервера local и все. после изучения проблемы я написал такое имя сервера: (local)\SQLEXPRESS И Я подключился к серверу. Потом стал вопрос с подключением к базе данных. Я решил нужно изучать SQL, заодно читал другую информацию. Вот мое решение. Я написал в блокноте такой код на языке SQL: sp_addlogin @loginame=<учетная_запись> @passwd=<пароль> @defdb=<имя_базы_данных> Объясню, что означают то, что записано в угловых скобках. <учетная_запись> - Имя пользователя сервера. <пароль> - Это пароль пользователя сервера. <имя_базы_данных> - это имя базы данных к которой нужно подключиться. Например: sp_addlogin @loginame=AlexBrown @passwd=398uip514jklhy @defdb=Northwind Потом нужно сохранить файл с любым именем, и с расширением .sql. Например: Моя Запись.sql Далее я открыл этот файл в Visual Studio через меню "Файл" -> "Открыть". Подключился к серверу, правой кнопкой мыши на коде и выбрать "Соединение". И выполнил код SQL, правой кнопкой мыши на коде и выбрать "Выполнить", или Ctrl+Shift+E. После этих действий база стала подключаться. |
27 ноя 17, 18:11 [20986795] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
Vassillume, это у тебя экран такой маленький или в стихах пытаешься писать? |
27 ноя 17, 18:12 [20986805] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |