Скрипт добавляет доменную учетную запись пользователя в группу sysadmin на MS SQL сервере.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
DECLARE @login NVARCHAR(200); DECLARE @seachuser INT; DECLARE @grant NVARCHAR(50); DECLARE @sqlstmt varchar(200) SET @login = 'domain\User' SET @GRANT = 'sysadmin' SET @seachuser = (select count(1) from master.sys.server_principals where name in (@login)) -- DROP LOGIN [domain\login] -- select @seachuser IF (@seachuser = 1) BEGIN /* Set @sqlstmt='DROP LOGIN ['+@login+']' print @sqlstmt exec(@sqlstmt) */ exec sp_addsrvrolemember @login,@GRANT; select 'Пользователь существует!' END ELSE BEGIN --Создание УЗ --CREATE LOGIN [domain\login] FROM WINDOWS; Set @sqlstmt='CREATE LOGIN ['+@login+'] FROM WINDOWS;' print @sqlstmt exec(@sqlstmt) --Добавление роли exec sp_addsrvrolemember @login,@GRANT; END |
Получаем список всех групп пользователя:
1 2 3 4 5 6 7 8 |
-- Получаем список всех групп пользователя select r.name as Role, m.name as Principal from master.sys.server_role_members rm inner join master.sys.server_principals r on r.principal_id = rm.role_principal_id and r.type = 'R' inner join master.sys.server_principals m on m.principal_id = rm.member_principal_id where m.name = 'domain\user' |
Получаем список всех пользователей группы:
1 2 3 4 5 6 7 8 9 |
-- Получаем список всех пользователей группы SELECT p.name AS [Name] FROM sys.server_principals r INNER JOIN sys.server_role_members m ON r.principal_id = m.role_principal_id INNER JOIN sys.server_principals p ON p.principal_id = m.member_principal_id WHERE r.type = 'R' and r.name = N'sysadmin' |