У меня есть сценарий, который создает базу данных, сохранил procs, представления, таблицы, udf. Я хочу включать сценарий, чтобы создать пользователя 'user_1' и дать, выполняют разрешение на базе данных.
Я попробовал следующее для создания исполнительной команды предоставления для всех, сохранил procs
declare @permission varchar(max)
select @permission = COALESCE(
@permission + '; ' + 'Grant Execute on ' + name + ' user_1',
'Grant Execute on ' + name + ' user_1')
from sysobjects where xtype in ('P')
exec (@permission)
Но exec (@permission)
не работает. Это дает
неправильный синтаксис рядом'';.
Как я могу решить это?
Создать логин: создает логин на уровне сервера. Потом... Создать пользователя: позволяет присоединить учетную запись для входа к вашей базе данных. Потом... Предоставить Execute To: предоставляет права на выполнение для ВСЕХ sp и функций в вашей базе данных. Используйте «Grant Execute ON abc TO xyz», если вы хотите предоставить права только определенным sps.
Create login abacadaba with password='ABVDe12341234';
Create user abacadaba for login abacadaba;
Grant Execute to abacadaba;
Вы пробовали:
CREATE LOGIN TestUser WITH PASSWORD = 'TopSecret'
GRANT EXEC ON MyStoredProc TO TestUser
вы также можете «СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ», если хотите.