Вход в Azure для пользователя db с pyodbc из веб-задания Azure - PullRequest
0 голосов
/ 30 ноября 2018

Я пытаюсь войти на sql-сервер Azure с помощью pyodbc, который регистрирует меня в master db, а не в userdb, например 'xyzdb', который я предоставляю в строке подключения.Решение этой проблемы, по-видимому, переключается на менее основанные на DSN входы в систему, для которых требуется настроить dsn на компьютере Windows.Но мне нужно запустить скрипт python с подключением pyodbc из веб-задания Azure, поэтому настройка dsn невозможна.Следовательно, не может использовать пользовательскую базу данных, как предполагалось.Любое решение?После входа в master db я подумал, что нужно перейти на user db с помощью «USE xyzdb;»Команда Sql, на которую сервер sql azure ответил «USE не может использоваться для переключения между базами данных», следовательно, xyzdb не может войти в систему.Я застрял :).

1 Ответ

0 голосов
/ 01 декабря 2018

Я сделал sql сервер azure с базой данных xyzdb.Затем я попробовал строку подключения для вновь созданного сервера: pyodbc.connect ('Driver = {Драйвер ODBC 13 для SQL Server}; Сервер = tcp: abc.database.windows.net, 1433; База данных = xyzdb; Uid = ur_username; Pwd =ur_password; Encrypt = yes; TrustServerCertificate = no; Время ожидания подключения = 30; ')

Эта строка подключения зарегистрировала меня в masterdb, а не в xyzdb, как предполагалось.А поскольку сервер Sql физически поддерживается в стеке в центре обработки данных, соединение не всегда возможно, если не использовать что-то в качестве эластичного пула.Так что «ИСПОЛЬЗУЙ xyzdb;»Оператор Sql из главной БД предоставлял «USE не может использоваться для переключения между базами данных».

в течение 3 дней я пытался использовать другие методы, но это не сработало, поэтому я отправил вопрос. Затем я попытался установить соединениестрока как:

pyodbc.connect ('Driver = {Драйвер ODBC 13 для SQL Server}; Сервер = tcp: abc.database.windows.net, 1433; Uid = ur_username; Pwd = ur_password; Encrypt = yes; TrustServerCertificate = нет; Тайм-аут соединения = 30; База данных = xyzdb ')

перемещение поля базы данных в конце строки, думая, что сначала установит соединение с сервером, а затем войдет в базу данных xyzdb и ItЗаписал меня в базу данных xyzdb. Это сработало само по себе в первый раз.

Теперь, если я попробую с любой из 2 строк выше, она работает, как и ожидалось.Не знаю, в чем была проблема?. Похоже, я впустую потратил время других :).мы можем удалить вопрос, который я предполагаю, так как я могу войти в userdb.Спасибо.

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