Na maioria dos bancos de dados que crio, preciso conceder permissões para fazer o seguinte:
- SELECT/INSERT/UPDATE/DELETE em todas as tabelas do banco de dados
- Execute todos os procedimentos armazenados (do usuário) no banco de dados
Fornecer usuários datareader
e datawriter
será suficiente para o sproc ou quais outras funções/permissões eu preciso fornecer?
Se eu precisar fazer mais do que apenas datareader
e datawriter
, você poderia me indicar a direção certa para criar um script para afetar todos os usuários no banco de dados.
desde já, obrigado
Com (1) você deve ser bom em dar-lhes
db_datareader
edb_datawriter
.Em (2) eu provavelmente criaria uma função e, em seguida, concederia a essa função permissões de execução em todos os procedimentos armazenados, em vez de concedê-la a cada usuário individual. Em seguida, basta adicionar esses usuários à função. Se você tiver todos os procedimentos armazenados em um nome de esquema, poderá conceder a execução a esse esquema . Isso economizará tempo e não terá que se preocupar com a inclusão de novos procedimentos no banco de dados.
Além da resposta de Shawn e seu comentário..
As tabelas que são mantidas apenas por procedimentos armazenados ou exibições não requerem permissões explícitas. "O encadeamento de propriedade2 afirma que eles não foram verificados: isso inclui um DENY.
Eu prefiro esquemas, mas também não permito acesso direto à tabela. Para um determinado esquema (Desktop, WebGUI etc), presumo que todos os clientes com permissões precisem usá-lo. Dentro disso, eu também teria alguma segurança de aplicativo, por exemplo, com base em SUSER_SNAME () ou algo semelhante para rastrear usuários.