Предоставление пользователям прав из одной базы на доступ к просмотру данных в другой базе расположенных на одном сервере MS SQL:
ALTER PROCEDURE spUsersCreater
AS SET NOCOUNT ON
-- определяем переменные
DECLARE @cur NVARCHAR(50)
DECLARE @object NVARCHAR(150)
DECLARE @sql NVARCHAR(250)
SET @object = 'role_allveiw'
-- цикл с применением курсора
DECLARE db_cursor CURSOR FOR
SELECT Login FROM DBname.dbo.Users WHERE (Active = 1)
-- открываем курсор
OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @cur
WHILE @@FETCH_STATUS = 0
BEGIN
SET @sql = 'CREATE USER ['+@cur+'] FOR LOGIN ['+@cur+'] WITH DEFAULT_SCHEMA=['+@cur+'] '
EXEC (@sql)
EXEC sp_addrolemember @object, @cur
FETCH NEXT FROM db_cursor INTO @cur
END
-- закрываем курсор
CLOSE db_cursor
-- освобождаем память
DEALLOCATE db_cursor
RETURN
Комментариев нет:
Отправить комментарий