t-sql создают пользователя, и предоставление выполняются на разрешении для хранимых процедур

У меня есть сценарий, который создает базу данных, сохранил 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) не работает. Это дает

неправильный синтаксис рядом'';.

Как я могу решить это?

10
задан p.campbell 16 December 2014 в 23:16
поделиться

2 ответа

Создать логин: создает логин на уровне сервера. Потом... Создать пользователя: позволяет присоединить учетную запись для входа к вашей базе данных. Потом... Предоставить 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;
24
ответ дан 3 December 2019 в 16:08
поделиться

Вы пробовали:

CREATE LOGIN TestUser WITH PASSWORD = 'TopSecret'
GRANT EXEC ON MyStoredProc TO TestUser

вы также можете «СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ», если хотите.

2
ответ дан 3 December 2019 в 16:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: