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 az Entity Framework Core 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.
- Egy, a Microsoft Entra-azonosítóval (korábban Azure Active Directory) való hitelesítésre konfigurált SQL-adatbázis. Létrehozhat egyet a gyorsútmutatóval: Egyetlen adatbázis létrehozása – Azure SQL Database.
- .NET 9.0 vagy újabb.
- Visual Studio vagy újabb verzió a ASP.NET és webes fejlesztés munkaterheléssel.
- Az Azure CLI legújabb verziója.
- Az Entity Framework Core-eszközök legújabb verziója:
- A Visual Studio felhasználóinak telepíteniük kell az Entity Framework Core Csomagkezelő konzol eszközeit.
- A .NET CLI-felhasználóknak telepíteniük kell az Entity Framework Core .NET CLI-eszközeit.
Az adatbázis-kiszolgáló 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
Az ebben a szakaszban ismertetett lépések egy .NET Minimal Web API-t hoznak létre a .NET CLI vagy a Visual Studio 2022 használatával.
A Visual Studio menüsávjában lépjen a Fájl>új>projekt lapra.
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 keretrendszerben válassza a .NET 9.0 lehetőséget, és törölje a jelet a Vezérlők használata 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.
Entity Framework Core hozzáadása a projekthez
Ha az Azure SQL Database-hez a .NET és az Entity Framework Core használatával szeretne csatlakozni, három NuGet-csomagot kell hozzáadnia a projekthez az alábbi módszerek egyikével:
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ényként kapott ablakban keresse meg az EntityFrameworkCore-t. Keresse meg és telepítse a következő csomagokat:
-
Microsoft.EntityFrameworkCore: Alapvető Entity Framework Core-funkciókat biztosít -
Microsoft.EntityFrameworkCore.SqlServer: További összetevőket biztosít a logikai kiszolgálóhoz való csatlakozáshoz -
Microsoft.EntityFrameworkCore.Design: Támogatást nyújt az Entity Framework migrálásainak futtatásához -
Microsoft.EntityFrameworkCore.Tools: Támogatja a Visual Studio Package Manager konzol eszközkészletét (csak PowerShell esetén) -
Swashbuckle.AspNetCore: Nem kötelező – támogatja a SwaggerUI és az alkalmazásvégpontok közötti interakciót
Az Azure SQL Database-hez való csatlakozáshoz használt kód hozzáadása
Az Entity Framework Core könyvtárak a Microsoft.Data.SqlClient és Azure.Identity könyvtárakra támaszkodnak az Azure SQL Database-hez való jelszó nélküli kapcsolatok megvalósításához. A Azure.Identity kódtár egy DefaultAzureCredential nevű osztályt biztosít, amely az Azure-ba történő jelszó nélküli hitelesítést kezeli.
DefaultAzureCredential több hitelesítési módszert támogat, és meghatározza, hogy melyiket használja futásidőben. Ez a megközelítés lehetővé teszi, hogy az alkalmazás különböző hitelesítési módszereket használjon különböző környezetekben (helyi és éles környezetben) környezetspecifikus kód implementálása nélkül. Az Azure Identity-kódtár áttekintése ismerteti azokat a sorrendeket és helyeket, amelyeken DefaultAzureCredential hitelesítő adatokat keres.
Hajtsa végre az alábbi lépéseket az Azure SQL Database-hez való csatlakozáshoz az Entity Framework Core és a mögöttes DefaultAzureCredential osztály használatával:
Adjon hozzá egy szakaszt
ConnectionStringsaappsettings.Development.jsonfájlhoz, hogy az megfeleljen az alábbi kódnak. Cserélje le<server>.database.windows.neta csatlakoztatni kívánt jelszó nélküli adatbázis-kiszolgáló nevét és<database>az adatbázis nevét.{ "Logging": { "LogLevel": { "Default": "Information", "Microsoft.AspNetCore": "Warning" } }, "ConnectionStrings": { "AZURE_SQL_CONNECTIONSTRING": "Data Source=<server>.database.windows.net;Initial Catalog=<database>;Authentication=Active Directory Default;Encrypt=True;" } }Megjegyzés:
Ne felejtse el frissíteni az adatbázis-kapcsolat sztringjének
<your database-server-name>és<your-database-name>helyőrzőit. A jelszó nélküli kapcsolati sztringek biztonságosan véglegesítik a forrásvezérlést, mivel nem tartalmaznak titkos kulcsokat, például felhasználóneveket, jelszavakat vagy hozzáférési kulcsokat.A jelszó nélküli kapcsolati sztring olyan konfigurációs
Authentication=Active Directory Defaultértéket tartalmaz, amely lehetővé teszi az Entity Framework Core számáraDefaultAzureCredentialaz Azure-szolgáltatásokhoz való csatlakozást. Amikor az alkalmazás helyileg fut, azzal a felhasználóval hitelesíti magát, akivel bejelentkezett a Visual Studióba. Miután az alkalmazást üzembe helyezik az Azure-ban, ugyanaz a kód felderíti és alkalmazza a társított felügyelt identitást, amit később fogsz konfigurálni.Cserélje le a
Program.csfájl tartalmát a következő kódra:using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; var builder = WebApplication.CreateBuilder(); builder.Services.AddOpenApi(); var connection = String.Empty; if (builder.Environment.IsDevelopment()) { builder.Configuration.AddEnvironmentVariables().AddJsonFile("appsettings.Development.json"); connection = builder.Configuration.GetConnectionString("AZURE_SQL_CONNECTIONSTRING"); } else { connection = Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING"); } builder.Services.AddDbContext<PersonDbContext>(options => options.UseSqlServer(connection)); var app = builder.Build(); if (app.Environment.IsDevelopment()) { app.MapOpenApi(); app.UseSwaggerUI(options => { options.SwaggerEndpoint("/openapi/v1.json", "v1"); }); } app.MapGet("/", () => "Hello world!"); app.MapGet("/Person", (PersonDbContext context) => { return context.Person.ToList(); }); app.MapPost("/Person", (Person person, PersonDbContext context) => { context.Add(person); context.SaveChanges(); }); app.Run(); public class Person { public int Id { get; set; } public string FirstName { get; set; } public string LastName { get; set; } } public class PersonDbContext : DbContext { public PersonDbContext(DbContextOptions<PersonDbContext> options) : base(options) { } public DbSet<Person> Person { get; set; } }Az előző kód a következő lépéseket kezeli:
- Lekéri a jelszó nélküli adatbázis kapcsolati sztringet a
appsettings.Development.jsonhelyi fejlesztési fájlból vagy az üzemeltetett éles forgatókönyvek környezeti változóiból. - Regisztrálja az Entity Framework Core
DbContextosztályt a .NET függőséginjektálási tárolóval. Az Entity Framework CoreDbContextdokumentációjában olvashat bővebben. - A .NET 9.0 OpenAPI-támogatást a SwaggerUI-val konfigurálja, hogy olyan felhasználói felületet biztosítson, amellyel az alkalmazásvégpontok és az adatbázis kezelhető.
- Végpontokat ad hozzá az adatbázis entitásainak lekéréséhez és hozzáadásához.
- Egy osztályt
Personhatároz meg, amely egyetlen rekordot jelöl azPersonsadatbázistáblában, és azt azPersonDbContextosztályt, amelyet a .NET függőséginjektálási tárolóban regisztráltak.
- Lekéri a jelszó nélküli adatbázis kapcsolati sztringet a
Az adatbázis létrehozásához futtassa a migrálásokat
Az Entity Framework Core használatával végrehajtott migráció szükséges ahhoz, hogy az adatbázis séma megfeleljen az adatmodellnek. Az áttelepítések létrehozhatnak és növekményesen frissíthetnek egy adatbázissémát, hogy szinkronban maradjanak az alkalmazás adatmodelljével. Erről a mintáról a migrálások áttekintésében tudhat meg többet.
Nyisson meg egy terminálablakot a projekt gyökeréhez.
Futtassa a következő parancsot egy olyan kezdeti migrálás létrehozásához, amely létrehozhatja az adatbázist:
Add-Migration InitialCreate
A
Migrationsmappának kell megjelennie a projektkönyvtárban, valamint egy fájlnak, amely előtt egyedi számok vannak hozzáfűzveInitialCreate. A migrálás futtatásával hozza létre az adatbázist a következő paranccsal, és az Entity Framework Core eszközkészlet létrehozza az azure-ban azPersonDbContextosztály által definiált adatbázissémát.Update-Database
Az alkalmazás helyi 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 az utónév és a családnév értékeit. 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, és a rendszer visszaadja az imént létrehozott személyt.
Ü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 zöld + ikont választva 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 kiválasztja az appszolgáltatások listájában, majd válassza a Tovább gombot.
Az API Management lépésben jelölje be alul a Lépés kihagyása jelölőnégyzetet, majd válassza a Befejezés lehetőséget.
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. Az üzenetnek az Hello world alapértelmezett végpontról kell megjelennie. Jelenleg azonban az adatbázisvégpontok nem működnek 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
Az App Service-példány azure SQL Database-hez való csatlakoztatásához a következő lépések szükségesek:
- Felügyelt identitás létrehozása az App Service-hez. Az
Microsoft.Data.SqlClientalkalmazásban található kódtár automatikusan felderíti a felügyelt identitást, ahogyan a helyi Visual Studio-felhasználót is. - 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 jelszó nélküli bővítményével.
Telepítse vagy frissítse a Service Connector jelszó nélküli bővítményét:
az extension add --name serviceconnector-passwordless --upgradeFuttassa a
az webapp connection create sqlparancsot a webalkalmazás adatbázishoz való csatlakoztatásához egy rendszer által hozzárendelt felügyelt identitás használatával. Cserélje le a helyőrzőket a megfelelő értékekre:az webapp connection create sql -g <your-resource-group> -n <your-app-service-name> --tg <your-database-server-resource-group> --server <your-database-server-name> --database <your-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 kapcsolati sztringnek kell megjelennie
AZURE_SQL_CONNECTIONSTRING. Válassza ki a Kattintson a megjelenítéshez szöveget a generált jelszó nélküli kapcsolat karakterláncának megtekintéséhez. Ennek a kapcsolati sztringnek a neve igazodik az alkalmazásban konfigurálthoz, így az automatikusan felderítve lesz az Azure-ban való futtatáskor.
Fontos
Bár ez a megoldás egyszerű megközelítést biztosít az első lépésekhez, a vállalati éles környezetek esetében nem ajánlott eljárás. Ezekben az esetekben az alkalmazásnak nem szabad minden műveletet egyetlen emelt szintű identitással végrehajtania. 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. További információ az adatbázis-szerepkörök és a biztonság konfigurálásáról:
Az üzembe helyezett alkalmazás tesztelése
Keresse meg az alkalmazás URL-címét, és ellenőrizze, hogy működik-e a kapcsolat az Azure SQL Database-hez. Az alkalmazás URL-címét az App Service áttekintési oldalán találja. Fűzze hozzá a /person elérési utat az URL végéhez, hogy elérje ugyanazt a végpontot, amit helyben tesztelt.
A helyileg létrehozott személynek meg kell jelennie a böngészőben. Gratulálunk, az alkalmazás mostantól helyi és üzemeltetett környezetben is csatlakozik az Azure SQL Database-hez.
Az erőforrások rendbetétele
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.
Megjegyzés:
Ha üzembe helyezte a mintaalkalmazást az Azure-ban, a nem kívánt költségek elkerülése érdekében mindenképpen keresse meg és törölje az App Service-erőforrást.
Kapcsolódó tartalom
- oktatóanyag: Adatbázis védelme az Azure SQL Database-ben
- Adatbázis-hozzáférés engedélyezése az SQL Database-hez, a felügyelt SQL-példányhoz és az Azure Synapse Analyticshez
- Az Azure SQL Database és a felügyelt SQL-példány biztonsági képességeinek áttekintése
- Forgatókönyv az Azure SQL Database és a felügyelt Azure SQL-példány gyakori biztonsági követelményeinek kezeléséhez