SqlServer Orphaned User
هنگامی که یک پایگاه داده را روی یک سیستم دیگر بازگردانی (Restore) میکنید، ممکن است کاربران به حالت Orphaned تبدیل شوند. این بدان معناست که هیچ شناسه لاگین (Login ID) یا رمز عبوری به این کاربران مرتبط نیست، زیرا شناسه امنیتی (SID) از سیستمی به سیستم دیگر متفاوت است. این اسکریپت برای شناسایی و رفع مشکل کاربران Orphaned در دیتابیس بازگردانی شده طراحی شده است.
نحوه استفاده: کافی است این اسکریپت را روی پایگاه دادهای که بازگردانی شده است اجرا کنید تا کاربران Orphaned شناسایی و اصلاح شوند.
CREATE TABLE #OrphanedUsers( row_num INT IDENTITY(1,1), username VARCHAR(1000), id VARCHAR(1000) ) INSERT INTO #OrphanedUsers(username,id) EXEC sp_change_users_login 'Report' DECLARE @rowCount INT = (SELECT COUNT(1) FROM #OrphanedUsers ); DECLARE @i INT =1 ; DECLARE @tempUsername VARCHAR(1000); WHILE(@i <= @rowCount) BEGIN SELECT @tempUsername = username FROM #OrphanedUsers WHERE row_num = @i; EXEC sp_change_users_login 'Auto_Fix',@tempUsername; SET @i = @i+1; END DROP TABLE #OrphanedUsers;