SqlServer Orphaned User

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;

 

Orphaned Usersql serverاسکریپتاموزش SqlServer
Comments (0)
Add Comment