Pythonda MsSQL Bağlantısı: Active Directory Hesabı ile Kullanım

Rümeysa Aktop
Turk Telekom Bulut Teknolojileri
2 min readMay 9, 2024

Günümüzde, birçok kuruluşun bilgi teknolojileri altyapısı, farklı sistemler arasında veri alışverişini gerektiren karmaşık bir yapıdadır. Bu sistemler arasında, farklı veritabanı sistemlerine erişim sağlamak sıkça karşılaşılan bir ihtiyaçtır. Ancak, bazı durumlarda geleneksel kullanıcı kimlik doğrulama yöntemleri yeterli olmayabilir.

Bu makalede, Active Directory Service hesabıyla MS SQL Server’a nasıl bağlanılacağını Pythonda PyODBC ve Pywin32 kullanarak adım adım açıklayacağım. Bu yöntem, geleneksel kullanıcı adı ve şifre tabanlı kimlik doğrulama yöntemlerinin yetersiz kaldığı durumlarda kullanışlıdır.

Adım 1: Active Directory Service Hesabı Oluşturma

İlk adım, MS SQL Server’a erişmek için Active Directory’de bir servis hesabı oluşturmaktır.

Adım 2: PythondaPyODBC ve Pywin32 Kurulumu

Python ile MS SQL Server’a bağlanmak için PyODBC ve Pywin32 kütüphanesini kurmanız gerekecek. Terminalden aşağıdaki komutları kullanarak PyODBC ve Pywin32 kütüphanelerini yükleyebilirsiniz. Verileri çekip kullanmak için Pandas kütüphanesini de yükleyeceğiz.

pip install pyodbc
pip install pywin32
pip install pandas

Adım 3: Bağlantı Dizesi Oluşturma

İlk olarak indirdiğiniz kütüphaneleri kodunuza import etmeniz gerekecek.

Daha sonra Active Directory Service hesabıyla MS SQL Server’a bağlanmak için bir bağlantı dizesi oluşturacağız. Bu dize, bağlanacağınız sunucunun adı, veritabanı adı ve Active Directory Service hesabının kimlik bilgilerini içermelidir.

import pyodbc
import win32security, win32con
import pandas
.
.
.
def getWindowsConnect(self) -> List[Dict[Text, Any]]:
server = 'tcp:127.0.0.1,1433'
database = 'DatabaseName'
username = 'username'
password = 'password'
handler = win32security.LogonUser(
username, "TURKTELEKOM", password,
win32con.LOGON32_LOGON_INTERACTIVE,
win32con.LOGON32_PROVIDER_DEFAULT)
win32security.ImpersonateLoggedOnUser(handler)
conn = pyodbc.connect(f"DRIVER={{SQL Server}};ADDRESS={server};SERVER={server};DATABASE={database};Trusted_Connection=YES")
sql_sorgusu = "SELECT * FROM TableName"
df = pd.read_sql(sql_sorgusu, conn)
conn.close()
return df

Bu makalede, Pythonda Active Directory Hesabı kullanarak MsSQL’e nasıl bağlanacağınızı öğrendiniz. Ayrıca bu yöntemi, diğer veritabanı sistemlerine bağlanmak için de özelleştirebilirsiniz.

Hoşçakalın :)

--

--