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:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
SQL-adatbázis a Microsoft Fabricben
Tartalmazott adatbázis-felhasználók használata az SQL Server és az Azure SQL Database-kapcsolatok adatbázisszintű hitelesítéséhez. A tartalmazott adatbázisok olyan adatbázisok, amelyek el vannak különítve más adatbázisoktól és az adatbázist üzemeltető SQL Server- vagy SQL Database-példánytól (és az master adatbázistól).
Az SQL Server támogatja a tartalmazott adatbázis-felhasználókat mind Windows-hitelesítés, mind SQL Server-hitelesítés esetén. SQL Database használata esetén egyesítse a tartalmazott adatbázis-felhasználókat adatbázisszintű tűzfalszabályokkal.
Ez a cikk áttekinti a tartalmazott adatbázismodell használatának előnyeit a hagyományos bejelentkezési/felhasználói modellhez és a Windows- vagy kiszolgálószintű tűzfalszabályokhoz képest. Bizonyos forgatókönyvek, kezelhetőség vagy alkalmazás-üzleti logika esetén továbbra is szükség lehet a hagyományos bejelentkezési/felhasználói modell és a kiszolgálószintű tűzfalszabályok használatára.
Hagyományos bejelentkezési és felhasználói modell
A hagyományos kapcsolatmodellben a Windows-felhasználók vagy a Windows-csoportok tagjai a Windows által hitelesített felhasználói vagy csoport hitelesítő adatok megadásával csatlakoznak az adatbázismotorhoz. Vagy a felhasználók megadhatnak egy nevet és egy jelszót, és sql serveres hitelesítéssel csatlakozhatnak. Az adatbázisnak mindkét esetben rendelkeznie kell egy olyan bejelentkezéssel, master amely megfelel a csatlakozó hitelesítő adatoknak.
Miután az adatbázismotor megerősítette a Windows hitelesítési hitelesítő adatait, vagy hitelesíti az SQL Server hitelesítési hitelesítő adatait, a kapcsolat általában megpróbál csatlakozni egy felhasználói adatbázishoz. A felhasználói adatbázishoz való csatlakozáshoz a bejelentkezést le kell képezni (vagyis társítani) egy adatbázis-felhasználóhoz a felhasználói adatbázisban. A kapcsolati sztring adott adatbázishoz való csatlakozást is megadhat, amely az SQL Serverben nem kötelező, de az SQL Database-ben kötelező.
A fontos alapelv, hogy a bejelentkezésnek (az master adatbázisban) és a felhasználónak (a felhasználói adatbázisban) is léteznie kell, és kapcsolatban kell lennie egymással. A felhasználói adatbázishoz való csatlakozás függőséget eredményez az master adatbázisban való bejelentkezéshez. Ez a függőség korlátozza az adatbázis áthelyezését egy másik üzemeltető SQL Server-példányra vagy az Azure SQL Database-kiszolgálóra.
Ha nem érhető el kapcsolat az master adatbázissal (például feladatátvétel van folyamatban), a teljes kapcsolati idő megnő, vagy a kapcsolat időtúllépést eredményezhet. A nem elérhető kapcsolatok csökkenthetik a kapcsolat méretezhetőségét.
Tartalmazott adatbázis-felhasználói modell
A tartalmazott adatbázis-felhasználói modellben az adatbázisba master való bejelentkezés nem jelenik meg. Ehelyett a hitelesítési folyamat a felhasználói adatbázisban történik. A felhasználói adatbázis adatbázis-felhasználója nem rendelkezik társított bejelentkezéssel az master adatbázisban.
A tartalmazott adatbázis-felhasználói modell támogatja a Windows-hitelesítést és az SQL Server-hitelesítést is. Az SQL Serverben és az SQL Database-ben is használható.
Ha tartalmazott adatbázis-felhasználóként szeretne csatlakozni, a kapcsolati sztringnek mindig tartalmaznia kell egy paramétert a felhasználói adatbázishoz. Az adatbázismotor ezt a paramétert használja annak megismeréséhez, hogy melyik adatbázis felelős a hitelesítési folyamat kezeléséért.
A tárolt adatbázis-felhasználó tevékenysége az adatbázis hitelesítésére korlátozódik. Az adatbázis felhasználói fiókját külön kell létrehozni minden olyan adatbázisban, amire a felhasználónak szüksége van. Az adatbázisok módosításához az SQL Database-felhasználóknak új kapcsolatot kell létrehozniuk. Az SQL Server tárolt adatbázis-felhasználói módosíthatják az adatbázisokat, ha egy azonos felhasználó egy másik adatbázisban található.
Az Azure-ban az SQL Database és az Azure Synapse Analytics támogatja a Microsoft Entra ID (korábbi nevén Azure Active Directory) identitásait mint beágyazott adatbázis-felhasználókat. Az SQL Database támogatja az SQL Server-hitelesítést használó, tartalmazott adatbázis-felhasználókat, de az Azure Synapse Analytics nem. További információ: Csatlakozás az SQL Database-hez Microsoft Entra-hitelesítéssel.
Ha Microsoft Entra-hitelesítést használ, a felhasználók a Microsoft Entra univerzális hitelesítésével létesíthetnek kapcsolatokat az SQL Server Management Studióból. A rendszergazdák úgy konfigurálhatnak univerzális hitelesítést, hogy többtényezős hitelesítést igényeljenek, amely telefonhívással, szöveges üzenettel, PIN-kóddal ellátott intelligens kártyán vagy mobilalkalmazás-értesítésen keresztül ellenőrzi az identitást. További információ: A Microsoft Entra többtényezős hitelesítés használata.
Az SQL Database és az Azure Synapse Analytics esetében mindig szükség van az adatbázis nevére a kapcsolati sztringben. Így nem kell módosítania a kapcsolati sztringet, amikor a hagyományos modellről a tartalmazott adatbázis-felhasználói modellre vált. SQL Server-kapcsolatok esetén az adatbázis nevét hozzá kell adni a kapcsolati sztringhez, ha még nincs jelen.
Important
A hagyományos modell használata esetén a kiszolgálószintű szerepkörök és a kiszolgálószintű engedélyek korlátozhatják az összes adatbázishoz való hozzáférést. A tartalmazott adatbázis-modell használata esetén az adatbázis-tulajdonosok és a ALTER BÁRMELY FELHASZNÁLÓI engedéllyel rendelkező adatbázis-felhasználók hozzáférést biztosíthatnak az adatbázishoz. Ez az engedély csökkenti a magas jogosultsági szintű kiszolgálói bejelentkezések hozzáférés-vezérlését, és kibővíti a hozzáférés-vezérlést, hogy magas jogosultságú adatbázis-felhasználókat is bevonjon.
Firewalls
SQL Server
Az SQL Server esetében a Windows tűzfalszabályok az összes kapcsolatra vonatkoznak, és ugyanolyan hatással vannak a bejelentkezésekre (hagyományos modellkapcsolatokra) és a tartalmazott adatbázis-felhasználókra. További információ a Windows tűzfalról: A Windows tűzfal konfigurálása adatbázismotor-hozzáféréshez.
SQL Database-tűzfalak
Az SQL Database külön tűzfalszabályokat tesz lehetővé a kiszolgálószintű kapcsolatok (bejelentkezések) és az adatbázisszintű kapcsolatok (tartalmazott adatbázis-felhasználók) számára. Amikor az SQL Database egy felhasználói adatbázishoz csatlakozik, először ellenőrzi az adatbázis tűzfalszabályait. Ha nincs olyan szabály, amely lehetővé teszi az adatbázis elérését, az SQL Database ellenőrzi a kiszolgálószintű tűzfalszabályokat. A kiszolgálószintű tűzfalszabályok ellenőrzéséhez hozzá kell férni az SQL Database-kiszolgáló adatbázisához master .
Az adatbázisszintű tűzfalszabályok a tárolt adatbázis-felhasználókkal kombinálva szükségtelenné tehetik a master kiszolgáló adatbázisának elérését a kapcsolat során. Az eredmény a kapcsolatok méretezhetőségének javítása.
Az SQL Database tűzfalszabályairól az alábbi cikkekben talál további információt:
- Azure SQL Database tűzfal
- Tűzfalbeállítások konfigurálása (Azure SQL Database)
- Sp_set_firewall_rule (Azure SQL Database)
- Sp_set_database_firewall_rule (Azure SQL Database)
Szintaxisbeli különbségek
| Hagyományos modell | Tartalmazott adatbázis-felhasználói modell |
|---|---|
Amikor csatlakozik az master adatbázishoz:CREATE LOGIN login_name WITH PASSWORD = 'strong_password';Ezután, amikor egy felhasználói adatbázishoz csatlakozik: CREATE USER 'user_name' FOR LOGIN 'login_name'; |
Ha felhasználói adatbázishoz csatlakozik:CREATE USER user_name WITH PASSWORD = 'strong_password'; |
| Hagyományos modell | Tartalmazott adatbázis-felhasználói modell |
|---|---|
Jelszó módosítása az master adatbázis kontextusában:ALTER LOGIN login_name WITH PASSWORD = 'strong_password'; |
Jelszó módosítása a felhasználói adatbázis környezetében:ALTER USER user_name WITH PASSWORD = 'strong_password'; |
SQL Managed Instance
Az Azure SQL Managed Instance a helyszíni SQL Serverhez hasonlóan viselkedik a tárolt adatbázisok kontextusában. A tárolt felhasználó létrehozásakor mindenképpen módosítsa az adatbázis környezetét az master adatbázisról a felhasználói adatbázisra. Emellett az elszigetelési beállítás beállításakor nem lehet aktív kapcsolat a felhasználói adatbázissal. Útmutatóként használja az alábbi kódot.
Warning
Az alábbi példaszkript utasítással kill zárja be az adatbázis összes felhasználói folyamatát. A szkript futtatása előtt győződjön meg arról, hogy tisztában van a szkript következményeivel, és hogy illeszkedik-e a vállalkozásához. Győződjön meg arról is, hogy más kapcsolatok nem aktívak a felügyelt SQL-példányok adatbázisában, mert a szkript megzavarja az adatbázisban futó egyéb folyamatokat.
USE master;
SELECT * FROM sys.dm_exec_sessions
WHERE database_id = db_id('Test')
DECLARE @kill_string varchar(8000) = '';
SELECT @kill_string = @kill_string + 'KILL ' + str(session_id) + '; '
FROM sys.dm_exec_sessions
WHERE database_id = db_id('Test') and is_user_process = 1;
EXEC(@kill_string);
GO
sp_configure 'contained database authentication', 1;
GO
RECONFIGURE;
GO
SELECT * FROM sys.dm_exec_sessions
WHERE database_id = db_id('Test')
ALTER DATABASE Test
SET containment=partial
USE Test;
GO
CREATE USER Carlo
WITH PASSWORD='Enterpwdhere*'
SELECT containment_desc FROM sys.databases
WHERE name='Test'
Remarks
- A tartalmazott adatbázis-felhasználókat engedélyezni kell az SQL Server minden egyes példányához. További információ: Tartalmazott adatbázis-hitelesítés (kiszolgálókonfigurációs lehetőség).
- A tartalmazott adatbázis-felhasználók és a nem visszacsatoló névvel rendelkező bejelentkezések együtt létezhetnek az alkalmazásokban.
- Tegyük fel, hogy az
masteradatbázisban van egy bejelentkezés, amelynek a neve name1. Ha egy név1 nevű, elkülönített adatbázis-felhasználót hoz létre, és a kapcsolati sztringben meg van adva egy adatbázisnév, akkor az adatbázishoz való csatlakozáskor az adatbázis-felhasználó környezetét választja a rendszer a bejelentkezési környezet helyett. Ez azt jelzi, hogy a tárolt adatbázis-felhasználó elsőbbséget élvez az azonos nevű bejelentkezésekkel szemben. - Az SQL Database-ben a tárolt adatbázis felhasználójának neve nem lehet ugyanaz, mint a kiszolgálói rendszergazdai fiók neve.
- Az SQL Database kiszolgáló rendszergazdai fiókja sohasem lehet önálló adatbázis-felhasználó. A kiszolgáló rendszergazdája rendelkezik a tárolt adatbázis felhasználóinak létrehozásához és kezeléséhez szükséges engedélyekkel. A kiszolgáló rendszergazdája engedélyeket adhat a felhasználói adatbázisokban tárolt adatbázis-felhasználók számára.
- Mivel a tartalmazott adatbázis-felhasználók adatbázisszintű tagok, minden olyan adatbázisban létre kell hoznia a tartalmazott adatbázis-felhasználókat, ahol használni szeretné őket. Az identitás az adatbázisra korlátozódik. Az identitás független (minden szempontból) egy olyan felhasználótól, aki ugyanazzal a névvel és jelszóval rendelkezik egy másik, ugyanazon kiszolgálón található adatbázisban.
- Használja ugyanazt a jelszóerősséget, amelyet általában a bejelentkezésekhez használna.