Azure SQL Server Veritabanı AD belirteci - Django
Ben başarıyla kullanarak Azure SQL Server bağladıktan AccessTokeniçinde pyodbc . Burada veritabanını kullanmadım usernameveya passwordbağlamadım. Bunun yerine attrs_beforepas için kullandım token. Burada jetonu otomatik olarak oluşturuyorum.
Token Üretimi:
identity_endpoint = os.environ["IDENTITY_ENDPOINT"]
identity_header = os.environ["IDENTITY_HEADER"]
def get_bearer_token(resource_uri): #Automattically token will generate
token_auth_uri = f"{identity_endpoint}?resource={resource_uri}&api-version=2019-08-01"
head_msi = {'X-IDENTITY-HEADER': identity_header}
resp = requests.get(token_auth_uri, headers=head_msi)
access_token = resp.json()['access_token']
return access_token
Pyodbc Bağlantısı:
accessToken = bytes(get_bearer_token("https://database.windows.net/"), 'utf-8');
exptoken = b"";
for i in accessToken:
exptoken += bytes({i});
exptoken += bytes(1);
tokenstruct = struct.pack("=i", len(exptoken)) + exptoken;
conn = pyodbc.connect(
"Driver={ODBC Driver 17 for SQL Server};Server=yoursqlserver.database.windows.net,1433;Database=dbName",
attrs_before={1256: bytearray(tokenstruct)});
Şimdi sorun, DB'yi bağlamak için bunun Django çerçevesinde nasıl kullanılacağıdır? Biz olamaz usernameya passwordmasmavi belirteci kullanırken veritabanına bağlanmak için.
Lütfen bana yardım et.
Yanıtlar
Bu özelliği işlemek için yeni bir paket oluşturdum.
pip install django-mssql-azure-backend
ardından ayarları yapılandırın.py
DATABASES = {
'default': {
'ENGINE': 'sql_server.pyodbc',
'NAME': 'mydb',
'HOST': 'myserver.database.windows.net',
'PORT': '',
'IS_AZURE_BASED_TOKEN': True
'OPTIONS': {
'driver': 'ODBC Driver 13 for SQL Server',
},
},
}
Eğer bir kullanıyorsanız yerel SQL sunucusu , bu yapılandırmayı kullanın.
DATABASES = {
'default': {
'ENGINE': 'sql_server.pyodbc',
'NAME': 'mydb',
'USER': 'user@myserver',
'PASSWORD': 'password',
'HOST': 'myserver.database.windows.net',
'PORT': '',
'IS_AZURE_BASED_TOKEN': False
'OPTIONS': {
'driver': 'ODBC Driver 13 for SQL Server',
},
},
}
Git bağlantısı: https://github.com/shakthifuture/django-mssql-azure-backend
Herhangi bir sorunla karşılaşırsanız, lütfen hatanızı buradan yükseltin .