Recentemente, configurei o SSDT para nossos desenvolvedores usarem. Reforçamos que as alterações em nossos bancos de dados dev sejam feitas por meio de SSDT, limitando as permissões que cada desenvolvedor tem quando conectado ao servidor (db_datareader, db_datawriter). No SSDT, publicamos nossas alterações no banco de dados usando um script de implantação que se conecta usando um logon com permissões elevadas.
Minha pergunta. Dado que chegamos a esse ponto para bloquear o banco de dados (para interromper o desvio do esquema); existe alguma maneira que os desenvolvedores possam visualizar os diagramas neste banco de dados sem ter que ter a permissão db_owner? Eu sei que cada desenvolvedor pode criar e visualizar seus próprios diagramas, mas eu quero que eles possam visualizar todos os diagramas, que foram criados por muitos desenvolvedores diferentes.
Eu não acho que isso vai ajudar, mas estamos executando o sql server 2012
Qualquer ajuda será muito bem recebida.
Da documentação :
Então parece que você não será capaz de fazer isso com papéis inferiores como
db_datareader
.Nos bastidores, aqui está o que o Management Studio está chamando para conduzir a lista:
Então você pode ver que isso corresponde à documentação.
Agora, algumas ideias de solução alternativa:
principal_id
de todos os diagramas para ser o logon atual. Isso significa que eles terão acesso a todos os diagramas até que a próxima pessoa faça login. Não é o ideal.sysdiagrams
própria tabela (não é realmente uma tabela de sistema) e sempre que um diagrama for criado ou atualizado, adicione/atualize uma cópia para cada principal (com seu nome de usuário anexado). Também não é o ideal, e você pode ter pessoas substituindo os diagramas umas das outras durante todo o dia.Aqui está uma idéia da segunda solução - tudo o que você realmente precisa manter aqui é uma lista dos principais de banco de dados que você deseja que possam acessar os diagramas (você também desejará ter algo para limpar os diagramas que foram deletados , e também alguma manutenção periódica que exclui diagramas para principais que foram excluídos):
Depois de criar alguns diagramas, veja como era uma versão resumida do Pesquisador de Objetos para esses usuários:
Agora,
dbo
irá coletar um monte de cópias de diagramas, o que talvez não seja necessário, mas você provavelmente quer que eles sejam o "mestre" na maioria das circunstâncias.De acordo com BOL , é necessária uma conta com privilégios dbo de proprietário do banco de dados. Mais informações aqui .
Assim, o usuário que o criou ou um membro da função db_owner pode abrir diagramas.