SQL Server 2008 - изменить разрешения для базы данных - PullRequest
0 голосов
/ 19 декабря 2011

У нас есть база данных, которая была импортирована из другого домена, и при импорте файла bak также была импортирована группа из их домена. И теперь мне нужно изменить это на группу, которая у нас есть в нашем собственном домене. При сохранении разрешений, которые установлены.

Я вижу это, когда щелкаю правой кнопкой мыши по базе данных, захожу в Свойства и выбираю Разрешения. Там написано domain\groupname, и вместо этого мне нужно изменить это на ourdomain\groupname, сохраняя установленные разрешения.

1 Ответ

1 голос
/ 19 декабря 2011
DECLARE @principal_id SMALLINT , @sql NVARCHAR(MAX) = N''

SELECT @principal_id = principal_id FROM sys.database_principals WHERE name = 'domain\groupnameOLD'

SELECT @sql  = @sql + state_desc+N' '+permission_name+N' ON ['+s.name+N'].['+o.name+N'] TO [domain\groupnameNEW];'+Nchar(13)+NCHAR(10)
FROM sys.database_permissions p
JOIN sys.objects o
    ON p.major_id = o.object_id
JOIN sys.schemas s
    ON o.schema_id = s.schema_id
WHERE 
    class = 1
AND grantee_principal_id = @principal_id
AND minor_id = 0
AND major_id > 0

PRINT @sql

Вы знаете, что делать после

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...