Estou tentando conceder direitos de logon do SQL Server para criar procedimentos armazenados e vinculá-los a um esquema personalizado. Neste caso, criei um esquema chamado IC
. Uma conta de serviço será então adicionada ao esquema com direitos de execução para os procedimentos armazenados.
Minha pergunta é: como faço para conceder a esse login do SQL Server os direitos de criar novos procedimentos armazenados vinculados ao IC?
ja tentei GRANT CREATE ON SCHEMA::IC TO [username];
mas só consegui
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near 'CREATE'.
Alguma sugestão?
Você não pode alterar a capacidade de criar procedimentos para apenas um esquema concedendo permissões apenas no esquema. (Supondo que o usuário não tenha outros direitos.)
Por quê?
O usuário ainda precisa do direito de criar objetos no banco de dados, que neste caso são procedimentos.
O que você pode fazer é conceder
CREATE PROCEDURE
direitos ao usuário e, em seguida, alterar o proprietário do esquema para esse usuário (mais seguro, veja abaixo para obter mais informações) ou conceder a esse usuário permissões no 'IC'SCHEMA
.Apenas a concessão
CREATE PROCEDURE
não permite que o usuário crie procedimentos em esquemas como dbo.Crie o login, o usuário correspondente e o esquema IC
Conceder procedimento de criação ao usuário
Ou Altere o proprietário do esquema (opção mais segura)
Ou conceda ao usuário acesso ao esquema
Risco envolvido com a concessão de direitos no esquema
Fonte
Dê uma olhada na resposta de @DavidBrowne-Microsoft para a origem da cotação e para obter mais informações sobre os riscos de segurança de "encadeamento de propriedade" ao conceder direitos de alteração de esquema.
Teste
Resultado:
Isso falha
Desfazer representação
Você pode tentar dar a permissão ALTER:
Documentos
Dos documentos: