Quantcast
Channel: Немножко всего .. из жизни администратора ms sql server
Viewing all articles
Browse latest Browse all 43

Скрипт переноса пользователей ролей сервера

$
0
0
При переходе с одного сервера на другой, необходимо так же перенести пользователей и вхождения в роли сервера.

Ниже приводится скрипт, которые предоставляет это сделать:

IFNOTEXISTS(SELECT*FROM tempdb.sys.objectsWHEREobject_id=OBJECT_ID(N'tempdb.dbo.#t')

ANDtypein(N'U'))

BEGIN
  createtable #t

  ( serverrole nvarchar(40),

  membername nvarchar(200),

  membersid varbinary(85)

  )
end

else
  truncatetable #t

declare @serverrole nvarchar(40)
declare @Membername nvarchar(200)
declare @sql nvarchar(250)

insertinto #t
execsp_helpsrvrolemember-- 'sysadmin'
--Если необходим список конкретной роли, то нужно указать её, иначе получится скрипт для всех ролей
 
declare cur cursorfor
select serverrole,Membername from #t
where Membername notin('sa','NT AUTHORITY\SYSTEM',

                                           'NT SERVICE\MSSQLSERVER','NT SERVICE\SQLSERVERAGENT',

                                           'NT AUTHORITY\NETWORK SERVICE'

                                           ,'BUILTIN\Administrators')

open cur

FETCHNEXTFROM cur INTO @serverrole,@membername
WHILE@@FETCH_STATUS= 0
BEGIN

   set @sql='exec sp_addsrvrolemember '''+@Membername+''' ,'''+ @serverrole+''';'

   print @sql

FETCHNEXTFROM cur INTO @serverrole,@membername
END

CLOSE cur
DEALLOCATE cur
droptable #t

Результат будет примерно такой:

exec sp_addsrvrolemember 'sa2' ,'sysadmin';

exec sp_addsrvrolemember 'user_testt' ,'sysadmin';

.
Этот скрипт  совместно со скриптом копирования прав пользователей на сервер MS SQL Server поможет вам перенести пользователей и из права на новый сервер.
Скрипт копирования самих пользователей с их SID-ами находится на сайте Microsoft.
 
Всего хорошего!

Viewing all articles
Browse latest Browse all 43

Trending Articles