Preskočiť na obsah
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.

orphaned-users-pouzivatelia-bez-loginu.sql 15 riadkov · T-SQL
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;
## 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)