В моем случае я работал под другим пользователем, чем тот, которого я ожидал.
У меня была 'DRIVER={SQL Server};SERVER=...;DATABASE=...;Trusted_Connection=false;User Id=XXX;Password=YYY'
в качестве строки подключения, которую я передал pypyodbc.connect()
, но соединение все еще использовало учетные данные пользователя Windows, который запустил сценарий (я проверил это с помощью SQL Server Profiler и попытавшись ввести неверный uid комбинация пароль / пароль - что не привело к ожидаемой ошибке).
Я решил не углубляться в это, так как переход на этот лучший способ подключения устранил проблему:
conn = pypyodbc.connect(driver='{SQL Server}', server='servername', database='dbname', uid='userName', pwd='Password')