## Kedy použiť Po RESTORE databázy na inú inštanciu alebo po migrácii SQL loginov. ## Ako čítať výsledok Nájdeného používateľa namapuješ na existujúci login cez `ALTER USER [meno] WITH LOGIN = [login];` – až po overení, že ide o tú istú identitu. > [!WARNING] > Pokrýva len SQL používateľov s autentifikáciou INSTANCE. Contained users a Windows skupiny majú iné pravidlá. Pri prenose loginov s pôvodným SID (napr. `Copy-DbaLogin`) orphaned users vôbec nevzniknú. **Oprávnenia:** Viditeľnosť databázových a serverových principals. Spúšťa sa v cieľovej databáze. **Režim:** READ ONLY · **Verzia:** SQL Server 2016 – 2022 ## Súvisiace recepty - [Kópia loginov medzi servermi (dbatools)](script.php?id=9&s=kopia-loginov-medzi-servermi-dbatools)
Skript
Orphaned users – používatelia bez loginu
SQL používatelia v aktuálnej databáze, ktorých SID nemá zodpovedajúci login na serveri – typicky po restore na inú inštanciu.
Parametre skriptu doplň a kopíruj hotový skript
/* DeadlockCafe | Orphaned users – používatelia bez loginu
Účel: SQL používatelia v aktuálnej databáze, ktorých SID nemá zodpovedajúci login na serveri – typicky po restore na inú inštanciu.
Režim: READ ONLY | SQL Server 2016 – 2022, on-premises
*/
SET NOCOUNT ON;
SELECT DB_NAME() AS database_name, dp.name AS database_user,
dp.sid, dp.authentication_type_desc
FROM sys.database_principals AS dp
LEFT JOIN sys.server_principals AS sp ON sp.sid = dp.sid
WHERE dp.type='S' AND dp.authentication_type=1
AND dp.name NOT IN ('dbo','guest','INFORMATION_SCHEMA','sys')
AND sp.sid IS NULL
ORDER BY dp.name;