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
Analytics Platform System (PDW)
A felhasználók árvaként jelennek meg az SQL Serverben, ha egy adatbázis-felhasználó az master adatbázisban való bejelentkezésen alapul, de a bejelentkezés már nem létezik az masteradatbázisban. Ez akkor fordulhat elő, ha a bejelentkezést törlik, vagy ha az adatbázist egy másik kiszolgálóra helyezik át, amelyen a bejelentkezés nem létezik. Ez a cikk azt ismerteti, hogyan kereshet árva felhasználókat, és hogyan lehet újraképezett felhasználókat bejelentkezni.
Megjegyzés:
Csökkentse az árva felhasználók lehetőségét, ha tartalmazott adatbázis-felhasználókat használ az áthelyezhető adatbázisokhoz. További információ: Az adatbázis hordozhatóvá tétele tartalmazott adatbázisokhasználatával.
Háttér
Ha az SQL Server egy példányán lévő adatbázishoz való csatlakozáshoz egy bejelentkezésen alapuló biztonsági tagot (adatbázis-felhasználói identitást) használ, az egyszerű felhasználónak érvényes bejelentkezéssel kell rendelkeznie az master adatbázisban. Ezt a bejelentkezést használja a hitelesítési folyamat, amely ellenőrzi az egyszerű identitást, és meghatározza, hogy az egyszerű felhasználó csatlakozhat-e az SQL Server-példányhoz. A kiszolgálópéldányok SQL Server-bejelentkezései a sys.server_principals katalógusnézetben és a sys.sql_logins kompatibilitási nézetben láthatók.
Az SQL Server-bejelentkezések az egyes adatbázisokhoz az SQL Server-bejelentkezéshez leképezett "adatbázis-felhasználóként" férnek hozzá. A szabálynak három kivétele van:
Tartalmazott adatbázis-felhasználók
A tárolt adatbázis felhasználói a felhasználói adatbázis szintjén hitelesítik magukat, és nincsenek bejelentkezésekhez társítva. Ez a modell azért ajánlott, mert az adatbázisok hordozhatóbbak, és a tárolt adatbázis-felhasználók nem válhatnak árvatá. Ezeket azonban minden adatbázishoz újra létre kell hozni. Ez a modell nem praktikus egy olyan környezetben, amely sok adatbázissal rendelkezik.
A vendégfiók
Ha engedélyezve van egy adatbázisban, ez a fiók engedélyezi az adatbázis-felhasználóhoz nem hozzárendelt SQL Server-bejelentkezéseket, hogy vendégfelhasználóként hozzáférjenek az adatbázishoz. A vendégfiók alapértelmezés szerint le van tiltva.
Microsoft Windows-csoporttagságok
A Windows-felhasználó által létrehozott SQL Server-bejelentkezések akkor férhetnek hozzá az adatbázisokhoz, ha a Windows-felhasználó tagja egy Olyan Windows-csoportnak, amely szintén az adatbázisban lévő felhasználó.
Az SQL Server-bejelentkezés adatbázis-felhasználóhoz való leképezésével kapcsolatos információk az adatbázisban találhatók. Tartalmazza az adatbázis-felhasználó nevét és a megfelelő SQL Server-bejelentkezés biztonsági azonosítóját (SID). Az adatbázis-felhasználó engedélyeit a rendszer az adatbázisban való engedélyezéshez alkalmazza.
Egy adatbázis-felhasználó (bejelentkezés alapján), amelyhez a megfelelő SQL Server-bejelentkezés nincs meghatározva, vagy helytelenül van definiálva egy kiszolgálópéldányon, nem tud bejelentkezni a példányba. Az ilyen felhasználóról azt mondják, hogy az adatbázis árva felhasználója az adott kiszolgálópéldányon. Árvaság akkor fordulhat elő, ha az adatbázis-felhasználó olyan bejelentkezésre SID van leképezve, amely nem szerepel az master adatbázisban. Az adatbázis-felhasználók árvává válhatnak, ha egy adatbázist visszaállítanak, vagy egy másik SQL Server-példányhoz csatolnak, ahol a bejelentkezés soha nem jött létre. Az adatbázis-felhasználók árvatá válhatnak, ha a megfelelő SQL Server-bejelentkezést elvetik. Még akkor is, ha a bejelentkezés újra létrejön, más SIDlesz, így az adatbázis-felhasználó továbbra is árva marad.
Árva felhasználók észlelése
SQL Server és PDW esetén
Ha hiányzó SQL Server-hitelesítési bejelentkezések alapján szeretné észlelni az árva felhasználókat az SQL Serverben, futtassa a következő utasítást a felhasználói adatbázisban:
SELECT dp.type_desc, dp.sid, dp.name AS user_name
FROM sys.database_principals AS dp
LEFT JOIN sys.server_principals AS sp
ON dp.sid = sp.sid
WHERE sp.sid IS NULL
AND dp.authentication_type_desc = 'INSTANCE';
A kimenet felsorolja az SQL Server-hitelesítés felhasználóit és a megfelelő SID-ket az aktuális adatbázisban, amelyek nincsenek egyetlen SQL Server-bejelentkezéshez sem csatolva.
Az Azure SQL Database és az Azure Synapse Analytics esetében
A sys.server_principals tábla nem érhető el az SQL Database-ben vagy az Azure Synapse Analyticsben. Az alábbi lépések végrehajtásával azonosíthatja az árva felhasználókat ezekben a környezetekben:
Csatlakozzon az
masteradatbázishoz, és válassza ki a bejelentkezések azonosítóit az alábbi lekérdezéssel:SELECT sid FROM sys.sql_logins WHERE type = 'S';Csatlakozzon a felhasználói adatbázishoz, és tekintse át a táblázatban szereplő
sys.database_principalsfelhasználók SID-jét az alábbi lekérdezéssel:SELECT name, sid, principal_id FROM sys.database_principals WHERE type = 'S' AND name NOT IN ('guest', 'INFORMATION_SCHEMA', 'sys') AND authentication_type_desc = 'INSTANCE';Hasonlítsa össze a két listát annak megállapításához, hogy vannak-e olyan felhasználói SID-k a felhasználói adatbázistáblában
sys.database_principals, amelyek nem egyeznek meg azmasteradatbázistáblasql_loginsbejelentkezési azonosítóival.
Árva felhasználó feloldása
Az adatbázisban használja a masterCREATE LOGIN utasítást a SID hiányzó bejelentkezés újbóli létrehozásához. Adja meg az SID előző szakaszban beszerzett adatbázis-felhasználót.
CREATE LOGIN <login_name>
WITH PASSWORD = '<use_a_strong_password_here>',
SID = <SID>;
Ha egy árva felhasználót olyan bejelentkezéshez szeretne hozzárendelni, amely már létezik master, futtassa az ALTER USER utasítást a felhasználói adatbázisban, és adja meg a bejelentkezési nevet:
ALTER USER <user_name> WITH Login = <login_name>;
Hiányzó bejelentkezés újbóli létrehozásakor a felhasználó a megadott jelszóval férhet hozzá az adatbázishoz. A felhasználó ezután az utasítással ALTER LOGIN módosíthatja a bejelentkezési fiók jelszavát:
ALTER LOGIN <login_name> WITH PASSWORD = '<enterStrongPasswordHere>';
Fontos
Minden bejelentkezés megváltoztathatja a saját jelszavát. Csak az ALTER ANY LOGIN engedéllyel rendelkező bejelentkezések módosíthatják egy másik felhasználó bejelentkezési jelszavát. Azonban csak a sysadmin szerepkör tagjai módosíthatják a sysadmin szerepkör tagjainak jelszavát.
Kapcsolódó tartalom
- HITELÉVÉ NYITÁS (Transact-SQL)
- ALTER USER (Transact-SQL)
- CREATE USER (Transact-SQL)
- sys.database_principals (Transact-SQL)
- sys.server_principals (Transact-SQL)
- sp_change_users_login (Transact-SQL)
- sp_addlogin (Transact-SQL)
- sp_grantlogin (Transact-SQL)
- sp_password (Transact-SQL)
- sys.sysusers (Transact-SQL)
- sys.sql_logins (Transact-SQL)
- sys.syslogins (Transact-SQL)