Как отладить «Ошибка входа пользователя» в базе данных SQL Azure? - PullRequest
0 голосов
/ 26 мая 2018

Вот сообщение об ошибке, которое вводит меня в заблуждение:

enter image description here

Мое веб-приложение имеет правильную строку подключения.Это именно то, что Azure предоставляет мне, когда я нажимаю Показать строку подключения:

Server=tcp:myservertest.database.windows.net,1433;Initial Catalog=MyDatabaseTest;Persist Security Info=False;User ID={your_username};Password={your_password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;

Вот строка подключения, которую я ввел в настройках подключения по умолчанию для параметров публикации Visual Studio:

Server=tcp:myservertest.database.windows.net,1433;Initial Catalog=MyDatabaseTest;Persist Security Info=False;User ID=*****;Password=***********;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;

enter image description here

Я подтвердил, что имя пользователя и пароль верны ... Я использовал те же самые для подключения через Microsoft SQL Server Management Studio.

Я попытался настроитьНастройки диагностики следующие, но я не совсем уверен, где можно найти полученные журналы.Я не вижу их в сервисах Kudo, но я верю, что они будут доступны в других местах.

Кто-нибудь знает, где они хранятся?

Кроме того, какими еще способами может быть Ошибка входа для пользователя Сообщение об ошибке отлажено?

enter image description here

Ответы [ 3 ]

0 голосов
/ 29 мая 2018

Вы убедились, что Allow access to Azure services включено.Это, как правило, где мы запутались.Если бы это прибыло из другого места, мы хотели бы проверить список IP здесь.Зная, что это не так, давайте копать глубже.

Вы попали в консоль Kudu, чтобы проверить все.С этой консоли установите mssql-cli.Запустите pip install mssql-cli с консоли Kudu.Если это не сработает, найдите direct urls curl или загрузите его на свой ПК и используйте Kudu Console для загрузки файла в службу приложения.

Один разу вас установлен mssql-cli, попробуйте подключиться с учетными данными, которые вы указали в appSettings.json.(См. https://github.com/dbcli/mssql-cli/blob/master/doc/usage_guide.md#options для параметров командной строки.) Скорее всего, он выдаст хорошее сообщение об ошибке, почему он не может подключиться, что даст вам больше подсказок.

Если подключится mssql-cliуспешно что-то переопределяет настройки вашего приложения.Задана ли строка подключения на вкладке «Параметры приложения» портала Azure?Временно вы можете изменить свое приложение, чтобы записать части строки подключения на скрытую страницу.И как только вы получите информацию, УДАЛИТЕ СТРАНИЦУ, а затем смените пароль .

Еще одна вещь, которую стоит попробовать: взять все детали из исключения - включая Data и рекурсивночерез внутренние исключения.Там, вероятно, есть подсказка.Вы можете удаленно отлаживать приложение в Azure.Прежде чем вы сможете отлаживать, вам нужно убедиться, что вы включили удаленную отладку и выбрали правильную версию Visual Studio из колонки «Параметры приложения» в службе приложений.

0 голосов
/ 31 мая 2018

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

Вы можете включить аудит базы данных SQL Azure и обнаружение лечения.Вы можете включить его на уровне экземпляра SQL Server, открыв ресурс SQL Server и выбрав Безопасность / Аудит и Обнаружение лечения.Выберите учетную запись хранения для хранения журналов в разделе «Сведения о хранилище» (см. Рисунок ниже).Для получения дополнительной информации см. https://docs.microsoft.com/en-us/azure/sql-database/sql-database-auditing. Auditing & Treat Detection settings

После включения аудита попробуйте войти в свою базу данных.После этого вы можете найти журналы в указанной учетной записи хранения Azure в контейнере BLOB-объектов с именем sqldbauditlogs .Журналы находятся в папке / имя_сервера / имя_базы_данных / SqlDbAuditing_ServerAudit_NoRetention / гггг-мм-дд / в файлах с расширением xel.Вы можете скачать и открыть .xel-файл в SSMS (Файл / Открыть / Файл ...).Файл xel содержит события, и вы можете увидеть там попытки входа.

Поле события успешно сообщает, не удалось ли войти в систему, и поле server_principal_name содержит имя пользователя в обоих случаях.Из текста в поле дополнительная_информация вы можете найти код ошибки (в XML).Код ошибки 40615 заблокирован брандмауэром, а код 18456 - неверное имя пользователя или пароль.(коды ошибок от https://docs.microsoft.com/en-us/azure/sql-database/sql-database-develop-error-messages)

Вы также можете найти некоторую информацию в системных таблицах базы данных для анализа соединений, например, sys.event_log (см .: https://docs.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-event-log-azure-sql-database?view=azuresqldb-current).

Дополнительные сведения об устранении неполадок подключения к базе данных SQL Azure можно найти здесь: https://docs.microsoft.com/en-us/azure/sql-database/sql-database-troubleshoot-common-connection-issues.

Надеюсь, это поможет вам в дальнейшей отладке соединения.

0 голосов
/ 26 мая 2018

Продолжить с комментария - Где в Куду это можно найти?Джастин в общем файловом проводнике?

Перейдите на Debug console > CMD - site > wwwroot - нажмите Edit icon

enter image description here

Также убедитесь, что Allow access to Azure services равно ON.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...