A gyakorlat menete hasonló, de több helyen eltér ettől a gyakorlatanyagtól.
A telepítendő alkalmazásként egy MS példaalkalmazást használunk.
dotnet user-secrets init
dotnet user-secrets set "ConnectionStrings:MyDbConnection" "connectionstringünk"
dotnet tool install -g dotnet-ef
dotnet ef database update --connection "connectionstringünk"
Egy előfizetés-régió-OS kombináción belül egyetlen free plan lehet.
## App Service Configuration
## Deployment
Aletrnatívaként a gyakorlatanyagból az Azure CLI-s megoldás is jó lehet.
A solution könyvtárában álljunk!
git init
git add --all
(.gitignore már van a projektben)git commit
git remote add <remote név> <git deployment url>
git push --set-upstream az master
), push során adjuk meg a portálról a git repo app szintű jelszót (\ utáni rész kell csak a usernévből)
## Diagnose & solve problems
## SQL AD Auth MSI-vel
CREATE USER [<identity-name>] FROM EXTERNAL PROVIDER;
ALTER ROLE db_datareader ADD MEMBER [<identity-name>];
ALTER ROLE db_datawriter ADD MEMBER [<identity-name>];
"Server=tcp:<server-name>.database.windows.net;Authentication=Active Directory Default; Database=<database-name>;"
Frissítsük az SqlClient-et: dotnet add package Microsoft.Data.SqlClient --version 5.1.2
(nem! System.Data.SqlClient) Újra publikálás,
select name as username,
create_date,
modify_date,
type_desc as type,
authentication_type_desc as authentication_type
from sys.database_principals
where type not in ('A', 'G', 'R', 'X')
and sid is not null
order by username;
– List of object-level permissions for the MSI user SELECT d.name AS object_name, dp.name AS principal_name, dp.type_desc AS principal_type, p.permission_name FROM sys.database_permissions AS p JOIN sys.database_principals AS dp ON p.grantee_principal_id = dp.principal_id LEFT JOIN sys.objects AS d ON p.major_id = d.object_id WHERE dp.name NOT IN (‘dbo’,’public’);
- Ellenőrző szkript - ki járt az adatbázisban
```sql
SELECT connection_id,
c.client_net_address,
c.session_id,
connect_time,
client_net_address,
client_tcp_port,
host_name,
program_name,
login_name,
original_login_name,
nt_user_name,
row_count
FROM sys.dm_exec_connections c
JOIN sys.dm_exec_sessions s ON s.session_id = c.session_id
WHERE DATETRUNC(d, s.login_time)= DATETRUNC( d, GETDATE())
az ad sp show --id <a login_name @ előtti része>
## Csatlakozás fejlesztői gépről AD felhasználóként
<!--<UserSecretsId>...</UserSecretsId>-->
appsettings.Development.json
-be connection stringet átírni:
"Server=tcp:<server-name>.database.windows.net,1433;Authentication=Active Directory Default;Database=<database-name>;"
## Application Insights w Log Analytics Workspace
https://learn.microsoft.com/en-us/azure/azure-monitor/overview#overview
## Deployment slots
[<appnév>/slots/<slotnév>]
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-controller="Todos" asp-action="Index">Todos</a>
</li>
--slot slotnév
hozzáadása az az webapp deploy
parancshoz