Как решить проблему с подключением пользователя при использовании фреймворка pyodbc на машине Ubuntu 16.04? - PullRequest
0 голосов
/ 18 февраля 2019

Решено !!!

Я пытаюсь подключиться к локальной базе данных SQL Server, используя Python Framework 'pyodbc' на компьютере с Ubuntu.Но я получаю снова и снова одну и ту же ошибку.

В качестве фона я должен добавить, что я сначала создал локально базу данных с приложением sqlcmd, и она хорошо работает в терминале.Я могу получить доступ таким способом.

sqlcmd -S 127.0.0.1 -U SA

Но когда я пытаюсь получить доступ по скрипту Python и получаю ошибку.

Вот мой код:

import pyodbc
details = {
 'server' : '127.0.0.1',
 'database' : 'testDB',
 'username' : 'SA',
 'password' : 'password'
 }
connect_string = 'DRIVER={{ODBC Driver 17 for SQL Server}};SERVER={server};PORT=1443; DATABASE={database};UID={username};PWD={password})'.format(**details)
connection = pyodbc.connect(connect_string)
print(connection)

Это простой код для начала работы с фреймворком, однако я получил следующее сообщение об ошибке в блокноте jupyter:

InterfaceError: ('28000', "[28000] [Microsoft] [ODBC Driver 17для SQL Server] [SQL Server] Ошибка входа для пользователя 'SA'. (18456) (SQLDriverConnect) ")

Решено !!

driver = "ODBC Driver 17 for SQL Server"
server = "127.0.0.1"
database = "testDB"
username = "sa"
password = "pwd"
print ("'DRIVER={" + str (driver) + "};SERVER=" + str (server) + ";DATABASE=" + str (database) + ";UID=" + str (username) + ";PWD=" + str (password) + "'")

import pyodbc

conn = pyodbc.connect ('DRIVER={ODBC Driver 17 for SQL Server};SERVER=127.0.0.1;DATABASE=testDB;UID=sa;PWD=pwd')

getcon = conn.cursor ()
print ("Connected to Database!")

Теперь с этим синтаксисом работает!!

...