#c# #sql-server
#c# #sql-server
Вопрос:
Я пытаюсь запустить консольное приложение, написанное на C #, с использованием visual Studio 2010, в котором я обращаюсь к временной базе данных Microsoft Sql Server Managment Studio.
Но приложение выдает исключение следующим образом:
"Cannot open database "dbname" requested by the login. The login failed. Login failed for user `machinnameusername""
И моя строка подключения выглядит следующим образом:
con.ConnectionString = @"Data Source=.SQLEXPRESS;Initial Catalog=temp;Integrated Security=True";
Почему это может привести к сбою с такой ошибкой?
Комментарии:
1. «Пожалуйста, помогите как можно скорее» — Пожалуйста, проверьте свой тон. Никто здесь не обязан вам помогать.
2. похоже, ваша база данных использует аутентификацию SQL…
Ответ №1:
Пользователь, под которым запущено приложение (вероятно, вы, поскольку это консольное приложение), не имеет прав входа в базу данных.
Integrated Security=True
указывает, что используется проверка подлинности Windows — либо используйте пользователя, имеющего соответствующие разрешения для базы данных, либо предоставьте соответствующие разрешения пользователю.
Комментарии:
1. Как мне предоставить разрешение пользователю?
2. @user693730 — Вам нужны права администратора в базе данных. Используйте Sql Server Management Studio — в области управления вы можете добавлять пользователей, логины и устанавливать правильные права доступа.
3. Поскольку я новичок в Sql Server Management Studio, я не могу найти область управления
Ответ №2:
Если вы измените строку подключения, чтобы использовать имя пользователя и пароль sql server, которые могут быть связаны с базой данных, то это сработает, если приложение не запущено под идентификатором Windows, который не связан с аутентификацией sql server Windows
Data Source=.SQLEXPRESS;Initial Catalog=temp;Persist Security Info=True;User ID=<username>;Password=<pw>"
приложение запущено под именем пользователя, который не распознан в sql server
Комментарии:
1. «Правильный» означает логин Sql. 🙂
2. ну да, если быть строго корректным, тогда да, фактический логин sql server, lol
3. Моя ошибка заключалась просто в том, что Sql имеет два режима аутентификации, ни один из которых не является более или менее правильным, чем другой. 🙂
4. Появилось новое исключение как «Ошибка входа в систему для пользователя ‘username'».
5. имя пользователя и пароль, которые вы добавляете при подключении, должны быть действительным именем пользователя sql server, которое также имеет правильные права на выполнение в базе данных