Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:Azure SQL Database
Ez a rövid útmutató bemutatja, hogyan csatlakoztathat egy alkalmazást egy Adatbázishoz az Azure SQL Database-ben, és hogyan hajthat végre lekérdezéseket a .NET és a Microsoft.Data.SqlClient könyvtár használatával. Ez a rövid útmutató az adatbázishoz való csatlakozás ajánlott jelszó nélküli megközelítését követi. További információt találhatsz a jelszó nélküli kapcsolatokról a jelszó nélküli platformon.
Előfeltételek
- Egy Azure-előfizetés.
- Microsoft Entra-azonosítóval való hitelesítésre konfigurált Azure SQL-adatbázis (korábban Azure Active Directory). Létrehozhat egyet az Adatbázis rövid útmutató létrehozásasegítségével.
- Az Azure CLI legújabb verziója.
- Visual Studio vagy újabb verzió a ASP.NET és webes fejlesztés munkaterheléssel.
- .NET 7.0-s vagy újabb.
Az adatbázis konfigurálása
Az Azure SQL Database biztonságos, jelszó nélküli kapcsolataihoz bizonyos adatbázis-konfigurációk szükségesek. Ellenőrizze a következő beállításokat a logikai kiszolgálón az Azure-ben, hogy megfelelően csatlakozzon az Azure SQL Database-hez helyi és üzemeltetett környezetekben is:
Helyi fejlesztési kapcsolatok esetén győződjön meg arról, hogy a logikai kiszolgáló úgy van konfigurálva, hogy a helyi gép IP-címe és más Azure-szolgáltatások kapcsolódhassanak:
Lépjen a kiszolgáló hálózatkezelési lapjára.
A Kijelölt hálózatok rádiógomb bekapcsolásával további konfigurációs beállításokat jelenít meg.
Válassza Adja hozzá az ügyfél IPv4-címét (xx.xx.xx.xx.xx) egy tűzfalszabály hozzáadásához, amely engedélyezi a helyi gép IPv4-címéről érkező kapcsolatokat. Másik lehetőségként választhatja a + Tűzfalszabály hozzáadása lehetőséget is egy tetszőleges IP-cím megadásához.
Győződjön meg arról, hogy a Az Azure-szolgáltatások és -erőforrások hozzáférésének engedélyezése a kiszolgálóhoz jelölőnégyzet be van jelölve.
Figyelmeztetés
A „Az Azure-szolgáltatások és -erőforrások hozzáférésének engedélyezése ehhez a kiszolgálóhoz” beállítás engedélyezése nem ajánlott biztonsági gyakorlat éles helyzetekben. A valós alkalmazásoknak biztonságosabb megközelítéseket kell implementálniuk, például erősebb tűzfalkorlátozásokat vagy virtuális hálózati konfigurációkat.
Az adatbázis biztonsági konfigurációiról az alábbi forrásokban olvashat bővebben:
A kiszolgálónak engedélyeznie kell a Microsoft Entra-hitelesítést is, és hozzá kell rendelnie egy Microsoft Entra rendszergazdai fiókot. Helyi fejlesztési kapcsolatok esetén a Microsoft Entra rendszergazdai fióknak olyan fióknak kell lennie, amellyel helyileg is bejelentkezhet a Visual Studióba vagy az Azure CLI-be. Ellenőrizheti, hogy a kiszolgálón engedélyezve van-e a Microsoft Entra-hitelesítés a logikai kiszolgáló Microsoft Entra-azonosító lapján.
Ha személyes Azure-fiókot használ, győződjön meg arról, hogy Microsoft Entra-t állította be és konfigurálta az Azure SQL Database- a fiók kiszolgálói rendszergazdaként való hozzárendeléséhez. Ha vállalati fiókot használ, a Microsoft Entra-azonosító valószínűleg már konfigurálva lesz Az Ön számára.
A projekt létrehozása
A következő lépésekhez hozzon létre egy .NET Minimal Web API-t a .NET CLI vagy a Visual Studio 2022 használatával.
A Visual Studio menüjében lépjen Fájl>Új>Projekt elemre..
A párbeszédpanelablakban írja be a ASP.NET a projektsablon keresőmezőbe, és válassza ki a ASP.NET Core Web API-találatot. A párbeszédpanel alján válassza a Tovább gombot.
A Projektnévmezőbe írja be DotNetSQL. Hagyja meg a többi mező alapértelmezett értékeit, és válassza a Tovább gombot.
A Frameworkesetében válassza a .NET 7.0 lehetőséget, és törölje a jelet Vezérlők használata (a minimális API-k használatának jelölésének törlése)jelölőnégyzetből. Ez a rövid útmutató minimális API-sablonnal egyszerűsíti a végpontok létrehozását és konfigurálását.
Válassza a Létrehozás elemet. Az új projekt a Visual Studio-környezetben nyílik meg.
A Microsoft.Data.SqlClient kódtár hozzáadása
Ha az Azure SQL Database-hez a .NET használatával szeretne csatlakozni, telepítse Microsoft.Data.SqlClient. Ez a csomag adatszolgáltatóként működik az adatbázisokhoz való csatlakozáshoz, a parancsok végrehajtásához és az eredmények lekéréséhez.
Megjegyzés
Győződjön meg arról, hogy Microsoft.Data.SqlClient telepít, és ne System.Data.SqlClient.
Microsoft.Data.SqlClient az SQL-ügyfélkódtár újabb verziója, amely további képességeket biztosít.
A Megoldáskezelő ablakban kattintson a jobb gombbal a projekt Függőségek csomópontra, és válassza a NuGet-csomagok kezeléselehetőséget.
Az eredményül kapott ablakban keresse meg SqlClient. Keresse meg a
Microsoft.Data.SqlClienteredményt, és válassza a Telepítéslehetőséget.
Kapcsolati sztring konfigurálása
Az Azure SQL Database-hez jelszó nélküli kapcsolattal rendelkező helyi fejlesztéshez adja hozzá az alábbi ConnectionStrings szakaszt a appsettings.json fájlhoz. Cserélje le a <database-server-name> és <database-name> helyőrzőket a saját értékeire.
"ConnectionStrings": {
"AZURE_SQL_CONNECTIONSTRING": "Server=tcp:<database-server-name>.database.windows.net,1433;Initial Catalog=<database-name>;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;Authentication=\"Active Directory Default\";"
}
A jelszó nélküli kapcsolati sztring beállítja a Authentication="Active Directory Default"konfigurációs értékét, amely arra utasítja a Microsoft.Data.SqlClient könyvtárat, hogy egy DefaultAzureCredentialnevű osztály használatával csatlakozzon az Azure SQL Database-hez.
DefaultAzureCredential engedélyezi a jelszó nélküli kapcsolatokat az Azure-szolgáltatásokhoz, és azt az Azure Identity-kódtár biztosítja, amelytől az SQL-ügyfélkódtár függ.
DefaultAzureCredential több hitelesítési módszert támogat, és meghatározza, hogy melyiket használja futásidőben a különböző környezetekhez.
Ha például az alkalmazás helyileg fut, DefaultAzureCredential hitelesíti a Visual Studióba bejelentkezett felhasználón vagy más helyi eszközökön, például az Azure CLI-en keresztül. Miután az alkalmazás az Azure-ra helyezésre kerül, ugyanaz a kód felderíti és alkalmazza azt a felügyelt identitást, amelyet az üzemeltetett alkalmazáshoz társítottál, és amelyet később konfigurálsz. Az Azure Identity-kódtár áttekintése ismerteti azokat a sorrendeket és helyeket, amelyeken DefaultAzureCredential hitelesítő adatokat keres.
Megjegyzés
A jelszó nélküli kapcsolati sztringek biztonságosan véglegesítik a forráskövetést, mivel nem tartalmaznak titkos kódokat, például felhasználóneveket, jelszavakat vagy hozzáférési kulcsokat.
Az Azure SQL Database-hez való csatlakozáshoz használt kód hozzáadása
Cserélje le a Program.cs fájl tartalmát a következő kódra, amely a következő fontos lépéseket hajtja végre:
- Lekéri a jelszónélküli kapcsolati karakterláncot a
appsettings.json - Létrehoz egy
Personstáblát az adatbázisban az indítás során (csak tesztelési forgatókönyvekhez) - Létrehoz egy végpontot
HTTP GETa táblában tárolt összes rekord lekéréséhezPersons - POST-végpontot
HTTPhoz létre, amely új rekordokat ad hozzá aPersonstáblához
using Microsoft.Data.SqlClient;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
var app = builder.Build();
// For production scenarios, consider keeping Swagger configurations behind the environment check
// if (app.Environment.IsDevelopment())
// {
app.UseSwagger();
app.UseSwaggerUI();
// }
app.UseHttpsRedirection();
string connectionString = app.Configuration.GetConnectionString("AZURE_SQL_CONNECTIONSTRING")!;
try
{
// Table would be created ahead of time in production
using var conn = new SqlConnection(connectionString);
conn.Open();
var command = new SqlCommand(
"CREATE TABLE Persons (ID int NOT NULL PRIMARY KEY IDENTITY, FirstName varchar(255), LastName varchar(255));",
conn);
using SqlDataReader reader = command.ExecuteReader();
}
catch (Exception e)
{
// Table may already exist
Console.WriteLine(e.Message);
}
app.MapGet("/Person", () => {
var rows = new List<string>();
using var conn = new SqlConnection(connectionString);
conn.Open();
var command = new SqlCommand("SELECT * FROM Persons", conn);
using SqlDataReader reader = command.ExecuteReader();
if (reader.HasRows)
{
while (reader.Read())
{
rows.Add($"{reader.GetInt32(0)}, {reader.GetString(1)}, {reader.GetString(2)}");
}
}
return rows;
})
.WithName("GetPersons")
.WithOpenApi();
app.MapPost("/Person", (Person person) => {
using var conn = new SqlConnection(connectionString);
conn.Open();
var command = new SqlCommand(
"INSERT INTO Persons (firstName, lastName) VALUES (@firstName, @lastName)",
conn);
command.Parameters.Clear();
command.Parameters.AddWithValue("@firstName", person.FirstName);
command.Parameters.AddWithValue("@lastName", person.LastName);
using SqlDataReader reader = command.ExecuteReader();
})
.WithName("CreatePerson")
.WithOpenApi();
app.Run();
Végül adja hozzá a Person osztályt a Program.cs fájl aljára. Ez az osztály egyetlen rekordot jelöl az adatbázis Persons táblájában.
public class Person
{
public required string FirstName { get; set; }
public required string LastName { get; set; }
}
Az alkalmazás helyi futtatása és tesztelése
Az alkalmazás készen áll a helyi tesztelésre. Győződjön meg arról, hogy ugyanazzal a fiókkal jelentkezett be a Visual Studióba vagy az Azure CLI-be, mint az adatbázis rendszergazdája.
Az API-projekt elindításához nyomja le a Visual Studio tetején található Futtatás gombot.
A Swagger felhasználói felületén bontsa ki a POST metódust, és válassza a Kipróbáláslehetőséget.
Módosítsa a JSON-mintát úgy, hogy az tartalmazza a
firstéslastnevét. Válassza a Végrehajtás lehetőséget, ha új rekordot szeretne hozzáadni az adatbázishoz. Az API sikeres választ ad vissza.Bontsa ki a
GETmetódust a Swagger felhasználói felületén, és válassza a Kipróbálás lehetőséget. Válassza a Végrehajtáslehetőséget, ekkor az imént létrehozott személy visszatér.
Üzembe helyezés az Azure App Service-ben
Az alkalmazás készen áll az Azure-ban való üzembe helyezésre. A Visual Studio létrehozhat egy Azure App Service-t, és egyetlen munkafolyamatban telepítheti az alkalmazást.
Győződjön meg arról, hogy az alkalmazás le van állítva, és sikeresen működik.
A Visual Studio Megoldáskezelő ablakában kattintson a jobb gombbal a felső szintű projektcsomópontra, és válassza a Közzététellehetőséget.
A közzétételi párbeszédpanelen válassza ki az üzembehelyezési célként az Azure lehetőséget, majd válassza a Továbbgombot.
Az adott célhoz válassza Azure App Service (Windows)lehetőséget, majd válassza a Továbblehetőséget.
A + ikonra kattintva hozzon létre egy új App Service-t, amely üzembe helyezhető, és adja meg a következő értékeket:
- Név: Hagyja meg az alapértelmezett értéket.
- Előfizetés neve: Válassza ki azt az előfizetést, amelyikhez üzembe kíván helyezni.
- erőforráscsoport: Válassza Új lehetőséget, és hozzon létre egy új, msdocs-dotnet-sqlnevű erőforráscsoportot.
- Tárhelycsomag: Válassza Új lehetőséget a tárhelycsomag párbeszédpanel megnyitásához. Hagyja meg az alapértelmezett értékeket, és válassza OKlehetőséget.
- Az eredeti párbeszédpanel bezárásához válassza a lehetőséget. A Visual Studio létrehozza az App Service-erőforrást az Azure-ban.
Az erőforrás létrehozása után győződjön meg arról, hogy ki van jelölve az appszolgáltatások listájában, majd válassza a Továbblehetőséget.
Az API Management lépésben jelölje be alul a A lépés kihagyása jelölőnégyzetet, majd válassza a Befejezéslehetőséget.
A Befejezés lépésben válassza a bezárása lehetőséget, ha a párbeszédpanel nem záródik be automatikusan.
Válassza a Közzététel lehetőséget a közzétételi profil összesítőjének jobb felső sarkában az alkalmazás Azure-ban való üzembe helyezéséhez.
Amikor az üzembe helyezés befejeződik, a Visual Studio elindítja a böngészőt a üzemeltetett alkalmazás megjelenítéséhez, de jelenleg az alkalmazás nem működik megfelelően az Azure-ban. Az adatok lekéréséhez továbbra is konfigurálnia kell az App Service és az SQL-adatbázis közötti biztonságos kapcsolatot.
Az App Service csatlakoztatása az Azure SQL Database-hez
A következő lépések szükségesek az App Service-példány és az Azure SQL Database közötti jelszó nélküli kapcsolat létrehozásához:
- Felügyelt identitás létrehozása az App Service-hez. Az alkalmazás
Microsoft.Data.SqlClientkönyvtára automatikusan felderíti a felügyelt identitást, ugyanúgy, mint a helyi Visual Studio-felhasználót. - Hozzon létre egy SQL-adatbázis-felhasználót, és társítsa azt az App Service által felügyelt identitáshoz.
- Sql-szerepkörök hozzárendelése az adatbázis-felhasználóhoz, amely lehetővé teszi az olvasási, írási és potenciálisan egyéb engedélyeket.
A lépések végrehajtásához több eszköz is rendelkezésre áll:
A Service Connector egy olyan eszköz, amely leegyszerűsíti a hitelesített kapcsolatokat az Azure különböző szolgáltatásai között. A Service Connector jelenleg támogatja az App Service sql-adatbázishoz való csatlakoztatását az Azure CLI-vel a az webapp connection create sql paranccsal. Ez az egyetlen parancs végrehajtja a fent említett három lépést.
az webapp connection create sql \
-g <app-service-resource-group> \
-n <app-service-name> \
--tg <database-server-resource-group> \
--server <database-server-name> \
--database <database-name> \
--system-identity
A Service Connector által végzett módosításokat az App Service beállításai között ellenőrizheti.
Navigáljon az App Service Identity oldalára. A Rendszer által hozzárendelt lapon az Állapot beállítása legyen On. Ez az érték azt jelenti, hogy a rendszer által hozzárendelt felügyelt identitás engedélyezve lett az alkalmazás számára.
Lépjen az App Service Konfigurációs lapjára. A Kapcsolati sztringek lapon egy AZURE_SQL_CONNECTIONSTRINGnevű kapcsolati sztringnek kell megjelennie. Jelölje ki a Kattintással megjelenítheti szöveg értékét a létrehozott jelszó nélküli kapcsolati sztring megtekintéséhez. Ennek a kapcsolati sztringnek a neve megegyezik az alkalmazásban konfigurált névvel, így a rendszer automatikusan felderíti, amikor az Azure-ban fut.
Fontos
Bár ez a megoldás egyszerű módja a kezdésnek, nem legjobb gyakorlat a termelési szintű környezetekben. Ezekben az esetekben az alkalmazás nem végezhet el minden műveletet egyetlen emelt szintű identitás használatával. Próbálja meg implementálni a minimális jogosultság elvét úgy, hogy több identitást konfigurál bizonyos feladatokhoz adott engedélyekkel.
Az adatbázis-szerepkörök és a biztonság konfigurálásáról az alábbi forrásokban olvashat bővebben:
Az üzembe helyezett alkalmazás tesztelése
Válassza a Böngészés gombot az App Service áttekintés oldal tetején, hogy elindítsa az alkalmazás gyökér URL-címét.
A helyileg használt Swagger-tesztlap betöltéséhez fűzze hozzá a
/swagger/index.htmlelérési utat az URL-címhez.GETTeszt- és POST-kérések végrehajtása annak ellenőrzéséhez, hogy a végpontok a várt módon működnek-e.Tipp
Ha a tesztelés során 500 belső kiszolgálóhiba jelenik meg, annak oka az adatbázis hálózati konfigurációja lehet. Ellenőrizze, hogy a logikai kiszolgáló a Az adatbázis konfigurálása szakaszban ismertetett beállításokkal van-e konfigurálva.
Az alkalmazás mostantól helyi és üzemeltetett környezetben is csatlakozik az Azure SQL Database-hez.
Az erőforrások törlése
Ha befejezte az Azure SQL Database használatát, törölje az erőforrást a nem tervezett költségek elkerülése érdekében.
Az Azure Portal keresősávjában keressen Azure SQL-, és válassza ki a megfelelő találatot.
Keresse meg és jelölje ki az adatbázist az adatbázisok listájában.
Az Azure SQL Database Áttekintés lapján válassza a Törléslehetőséget.
Biztosan törölni szeretné az Azure... a lapon, amely megnyílik, írja be az adatbázis nevét a művelet megerősítéséhez, majd válassza a Törléslehetőséget.