Desejo criar um user
com acesso mínimo necessário a dois bancos de dados em um servidor. O usuário será utilizado por alguém de terceiros integrando uma ferramenta de Business Intelligence em nosso banco de dados. Eles especificaram que precisarão apenas criar exibições.
Portanto, criei um novo usuário no servidor e usei as propriedades do banco de dados em cada banco de dados para conceder a eles os privilégios SELECT
e CREATE VIEW
nesse banco de dados.
Em seguida, loguei no SSMS usando esse usuário e tentei criar uma exibição, mas recebi uma mensagem dizendo que
'dbo' não existe ou não tenho permissão para usá-lo.
Tentei descobrir esse problema sozinho por tentativa e erro, mas simplesmente não entendo as permissões de usuário no servidor SQL. O que estou fazendo de errado e quais etapas extras/diferentes preciso executar?
Lembre-se, não quero que eles tenham mais controle do que o mínimo necessário.
Seu usuário deve ter permissão para modificar o esquema dbo. Você pode fazer isso atribuindo a permissão a uma função da qual o usuário é membro:
Então é como:
Depois que a permissão for concedida, execute novamente a
CREATE VIEW
instrução anterior. Agora vai dar certo.