![](/img/trans.png)
[英]Cannot connect to SQL server from python using Active Directory Authentication
[英]Connect to SQL Server DB with Active Directory Universal Authentication using Python
首先,我不是開發人員,因此對於這是一個多余或無益的問題,我深表歉意。
在Microsoft SQL Server Management Studio中,我可以使用Active Directory通用身份驗證連接到特定的服務器,但是我無法找到使用Python進行此操作的方法。
使用該應用程序登錄時,單擊“連接”后,將彈出一個Azure登錄屏幕,並且可以使用我的用戶名:myname@domain.com和密碼登錄。
但是,當我嘗試通過以下代碼使用pyodbc連接時,出現以下錯誤:
import pyodbc
def main():
serverName = "name.database.windows.net"
dbName = "DatabaseName"
connection = pyodbc.connect("DRIVER={SQL Server};SERVER=" + serverName +
";DATABASE=" + dbName +
";UID=myname@domain.com;PWD=mypassword")
cursor = connection.cursor()
data = cursor.execute("select * from sometable;")
allData = data.fetchall()
connection.close()
for i in allData:
print(i)
if __name__== "__main__":
main()
pyodbc.ProgrammingError :(“ 42000”,“ [42000] [Microsoft] [ODBC SQL Server驅動程序] [SQL Server]無法打開登錄名請求的服務器“域”。IP地址為“ xx.xx.xx.xx”的客戶端不允許訪問服務器要啟用訪問,請使用Windows Azure管理門戶或在主數據庫上運行sp_set_firewall_rule來為此IP地址或地址范圍創建防火牆規則,此更改最多可能需要五分鍾的時間。 (40615)(SQLDriverConnect); [42000] [Microsoft] [ODBC SQL Server驅動程序] [SQL Server]
我知道有類似問題的帖子,但是我不確定這是同一個問題。 我必須為此服務器使用Active Directory通用身份驗證。 我已經嘗試了從pyodbc.drivers()返回的所有SQL Server驅動程序,但是沒有運氣。 我使用與通過Python程序嘗試登錄時使用的IP地址相同的IP地址通過SQL Server Management Studio登錄。 我可以使用其他模塊登錄Azure,還是不能這樣做?
作為參考,下面是我通過Microsoft SQL Server Management Studio登錄時看到的彈出窗口。 我已經堅持了一段時間,因此我們將不勝感激。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.