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
Sql Server-bejelentkezésre leképezett adatbázis-felhasználót egy jelszóval rendelkező, tartalmazott adatbázis-felhasználóvá alakít át. Egy tartalmazott adatbázisban ezzel az eljárással távolíthatja el a függőségeket azon SQL Server-példányon, amelyen az adatbázis telepítve van.
sp_migrate_user_to_contained választja el a felhasználót az eredeti SQL Server-bejelentkezéstől, így az olyan beállítások, mint a jelszó és az alapértelmezett nyelv, külön felügyelhetők a tárolt adatbázishoz.
sp_migrate_user_to_contained használható, mielőtt áthelyezné a tárolt adatbázist az SQL Server adatbázismotor egy másik példányára, hogy kiküszöbölje az aktuális SQL Server-példányok bejelentkezéseinek függőségeit.
Figyelmeztet
Legyen óvatos a sp_migrate_user_to_containedhasználatakor, mivel nem fogja tudni megfordítani az effektust. Ez az eljárás csak tartalmazott adatbázisban használható. További információ: Tartalmazott adatbázisok.
Szintaxis
sp_migrate_user_to_contained [ @username = ] N'user' ,
[ @rename = ] { N'copy_login_name' | N'keep_name' } ,
[ @disablelogin = ] { N'disable_login' | N'do_not_disable_login' }
[ ; ]
Érvek
Fontos
A kiterjesztett tárolt eljárások argumentumait a Szintaxis szakaszban leírt sorrendben kell megadni. Ha a paraméterek sorrenden kívül vannak beírva, hibaüzenet jelenik meg.
[ @username = ] N'felhasználónév'
Egy felhasználó neve az aktuális tárolt adatbázisban, amely egy SQL Server által hitelesített bejelentkezésre van leképezve. Az érték sysname, alapértelmezett értéke NULL.
[ @rename = ] N'copy_login_name' | N'keep_name'
Ha egy bejelentkezésen alapuló adatbázis-felhasználó más felhasználónévvel rendelkezik, mint a bejelentkezési név, a migrálás során a keep_name használatával őrizze meg az adatbázis felhasználónevet. A copy_login_name használatával hozza létre az új, a bejelentkezési névvel rendelkező adatbázis-felhasználót a felhasználó helyett. Ha egy bejelentkezésen alapuló adatbázis-felhasználó felhasználóneve megegyezik a bejelentkezési névvel, mindkét beállítás a név módosítása nélkül hozza létre a tartalmazott adatbázis-felhasználót.
[ @disablelogin = ] N'disable_login' | N'do_not_disable_login'
A bejelentkezés letiltására szolgál a master adatbázisban. Ha le szeretné tiltani a bejelentkezést, a kapcsolatnak meg kell adnia a tartalmazott adatbázis nevét initial catalog a kapcsolati sztring részeként.
Kódértékek visszaadása
0 (sikeres) vagy 1 (hiba).
Megjegyzések
sp_migrate_user_to_contained jelszóval hozza létre a tárolt adatbázis-felhasználót a bejelentkezés tulajdonságaitól és engedélyétől függetlenül. Az eljárás sikeres lehet például, ha a bejelentkezés le van tiltva, vagy ha a felhasználó megtagadja CONNECT engedélyt az adatbázishoz.
sp_migrate_user_to_contained a következő korlátozásokkal rendelkezik.
- A felhasználónév még nem létezhet az adatbázisban.
- A beépített felhasználók, például dbo és vendégnem konvertálhatók.
- A felhasználó nem adható meg az aláírt tárolt eljárás
EXECUTE ASzáradékában. - A felhasználó nem rendelkezhet olyan tárolt eljárással, amely tartalmazza a
EXECUTE AS OWNERzáradékot. -
sp_migrate_user_to_containednem használható rendszeradatbázisban.
Biztonság
A felhasználók migrálása során ügyeljen arra, hogy ne tiltsa le vagy törölje az sql server-példány összes rendszergazdai bejelentkezését. Ha az összes bejelentkezés törölve van, olvassa el Csatlakozás az SQL Serverhez, ha a rendszergazdák ki vannak zárva.
Ha a BUILTIN\Administrators bejelentkezés jelen van, a rendszergazdák az alkalmazásuk elindításával csatlakozhatnak a Futtatás rendszergazdaként lehetőséggel.
Engedélyek
A CONTROL SERVER engedélyre van szükség.
Példák
Egy. Egyetlen felhasználó migrálása
Az alábbi példa egy Barrynevű SQL Server-bejelentkezést migrál egy jelszóval rendelkező adatbázis-felhasználóba. A példa nem módosítja a felhasználónevet, és engedélyezi a bejelentkezést.
EXECUTE sp_migrate_user_to_contained
@username = N'Barry',
@rename = N'keep_name',
@disablelogin = N'do_not_disable_login';
B. Az összes bejelentkezéssel rendelkező adatbázis-felhasználó áttelepítése a tartalmazott adatbázis-felhasználókba bejelentkezés nélkül
Az alábbi példa az SQL Server-bejelentkezéseken alapuló összes felhasználót áttelepíti a jelszóval rendelkező adatbázis-felhasználókra. A példa kizárja a nem engedélyezett bejelentkezéseket. A példát a tárolt adatbázisban kell végrehajtani.
DECLARE @username AS SYSNAME;
DECLARE user_cursor CURSOR
FOR SELECT dp.name
FROM sys.database_principals AS dp
INNER JOIN sys.server_principals AS sp
ON dp.sid = sp.sid
WHERE dp.authentication_type = 1
AND sp.is_disabled = 0;
OPEN user_cursor;
FETCH NEXT FROM user_cursor INTO @username;
WHILE @@FETCH_STATUS = 0
BEGIN
EXECUTE sp_migrate_user_to_contained
@username = @username,
@rename = N'keep_name',
@disablelogin = N'disable_login';
FETCH NEXT FROM user_cursor INTO @username;
END
CLOSE user_cursor;
DEALLOCATE user_cursor;