Не может открыть базу данных “тест”, который требует вход в систему. Вход в систему перестал работать. Вход в систему перестал работать для пользователя 'xyz\ASPNET'

Я создал веб-сервис, который сохраняет некоторые данные в к дб. Но я получаю эту ошибку:

Не может открыть базу данных "тест", который требует вход в систему. Вход в систему перестал работать. Вход в систему перестал работать для пользователя 'xyz\ASPNET'.

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

Data Source=.\SQLExpress;Initial Catalog=IFItest;Integrated Security=True
82
задан marc_s 2 April 2017 в 07:55
поделиться

3 ответа

Что ж, ошибка ясна, не так ли? Вы пытаетесь подключиться к своему SQL-серверу с помощью пользователя «xyz / ASPNET» - это учетная запись, под которой работает ваше приложение ASP.NET.

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

Можете ли вы показать нам свою строку подключения (обновив исходный вопрос)?

ОБНОВЛЕНИЕ: Хорошо, вы используете встроенную проверку подлинности Windows -> вам нужно создать учетную запись SQL Server для "xyz \ ASPNET" на ваш SQL Server - или измените строку подключения на что-то вроде:

connectionString="Server=.\SQLExpress;Database=IFItest;User ID=xyz;pwd=top$secret"

Если у вас есть пользователь «xyz» с паролем «top $ secret» в вашей базе данных.

45
ответ дан 24 November 2019 в 09:19
поделиться
  • Либо: «xyz \ ASPNET» не является логином (в sys.server_principals)
  • либо: «xyz \ ASPNET» настроен, но не сопоставлен с пользователем в тесте базы данных (sys.database_principals)

Я бы выбрал второй вариант: сообщение об ошибке подразумевает, что база данных по умолчанию либо отсутствует, либо в ней нет прав, а не настроена как логин .

Чтобы проверить, настроен ли он как логин

SELECT SUSER_ID('xyz\ASPNET') -- (**not** SUSER_SID)

Если NULL

CREATE LOGIN [xyz\ASPNET] FROM WINDOWS

Если не NULL

USE test
GO
SELECT USER_ID('xyz\ASPNET')

Если NULL

USE test
GO
CREATE USER [xyz\ASPNET] FROM LOGIN [xyz\ASPNET]
25
ответ дан 24 November 2019 в 09:19
поделиться

Лучшим вариантом будет использование встроенной проверки подлинности Windows, поскольку она более безопасна, чем проверка подлинности sql. Создайте нового пользователя Windows на сервере sql с необходимыми разрешениями и измените пользователя IIS в настройках безопасности пула приложений.

1
ответ дан 24 November 2019 в 09:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: