Funções no nível do banco de dados do SQL Server 2008

2

Existe uma função interna que eu possa conceder a um usuário que permita fazer qualquer coisa com o esquema e os dados, mas não com segurança e manutenção?

por exemplo,

eu sei que data_writer pode adicionar / update / delete, mas não permite create table

Eu quero poder executar CRUD em

  • tabelas, visualizações, sprocs
  • índices, FKs etc
  • dados dentro de tabelas
  • catálogos de texto completo

mas não permitir:

  • soltando o db
  • mexendo com as configurações de segurança
  • mexendo com os planos de backup / manutenção
  • qualquer outra coisa que não esteja relacionada ao esquema ou aos dados nela

Isso é facilmente alcançado?

Preciso criar uma função personalizada para isso? Em caso afirmativo, quais permissões eu preciso atribuir?

Obrigado

    
por Andrew Bullock 03.09.2010 / 13:19

1 resposta

1

Acredito que o db_ddladmin é destinado a esse propósito. Não lhes dará a capacidade de dados CRUD, então eles também precisarão do db_datawriter e do db_datareader também. Dito isto, não tenho 100% de certeza de que isso impedirá que o usuário solte o banco de dados, portanto, talvez você queira testá-lo.
Se isso não atender às suas necessidades, você precisará definir sua própria função. No nó Segurança do banco de dados, você deseja criar uma nova função de banco de dados. Você pode então adicionar um Securable para o banco de dados, que conterá muitas das permissões que você está procurando.

    
por 03.09.2010 / 15:19