2016-08-18 106 views
0

我試圖使用django-pyodbc-azure將django連接到Azure數據庫,並確保我在settings.py中的設置正確。但仍然有這個問題。我聽說這可能是由一些身份驗證問題引起的,但不知道如何解決這個問題。Django:嘗試連接到Azure數據庫時登錄失敗錯誤

django.db.utils.Error: ('28000', "[28000] [Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'USERNAME'. (18456) (SQLDriverConnect)")

DATABASES = { 
'default': { 
    'ENGINE': 'sql_server.pyodbc', 
    'NAME': 'SERVER_NAME', 
    'USER': 'USERNAME', 
    'PASSWORD': 'PASSWORD', 
    'HOST': 'SERVER_NAME.database.windows.net', 
    'PORT': '', 
} 

}

+0

你使用什麼格式的用戶名?您是否在服務器名稱中包含了服務器名稱? –

+0

@DavidMakogon我正在使用my_login_email @ gmail.com @ SERVER_NAME。它告訴我,用戶登錄失敗[email protected] –

+0

這看起來不像一個有效的用戶名(有一個電子郵件地址作爲SQL數據庫用戶名) –

回答

0

@HansongLi,Azure的SQL數據庫的連接字符串的格式如下Server=<ServerName>,<ServerPort>;Database=<DatabaseName>;UiD=<UserName>;Password={your_password_here};Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;

相應地,數據庫配置定義如下,請參閱文章here

DATABASES = { 
    'default': { 
     'ENGINE': 'sql_server.pyodbc', 
     'NAME': '<DatabaseName>', 
     'USER': '<UserName>', 
     'PASSWORD': '{your_password_here}', 
     'HOST': '<ServerName>', 
     'PORT': '<ServerPort>', 
     'OPTIONS': { 
      'driver': 'SQL Server Native Client 11.0', 
      'MARS_Connection': 'True', 
     } 
    } 
} 

同時,<UserName>應在格式<name>@<sql-azure-name>當主機<ServerName>是這樣tcp:<sql-azure-name>.database.windows.net

您可以在Azure門戶上找到連接字符串。

enter image description here

或者在Azure的經典門戶網站的標籤DASHBOARD

enter image description here