Como posso criar uma conta somente de Sql server 2008?

5

Eu quero ser capaz de fornecer acesso somente leitura ao meu servidor de banco de dados do SQL Server 2008. Em particular, dois bancos de dados, um chamado "ao vivo" e um chamado "palco".

Essencialmente, os caras que recebem esse nome de usuário e senha devem poder selecionar qualquer uma das tabelas, mas não executar nenhuma atualização, exclusão ou inserção. É claro que eles não devem ser capazes de realizar operações DDL. Eu provavelmente poderia evitar proibi-los de executar procs armazenados se eu precisasse.

Algum conselho?

    
por Stewart Robinson 24.02.2010 / 16:26

2 respostas

11

Em Segurança > Logins , crie um novo login e, na seção Mapeamento do usuário , marque os dois bancos de dados e, para cada membro da função db_datareader .

Isso fornecerá acesso de leitura a todos os dados em cada banco de dados.

Se você quiser fazer isso no script, o comando GRANT é onde você precisa começar.

Uma abordagem alternativa é fornecer acesso aos dados por meio de Procedimentos Armazenados e, em vez de conceder a eles permissões Leitura aos dados brutos, conceda-lhes permissões Executar aos SProcs selecionados.

Enfeite final: Se a configuração dessas permissões for complicada, talvez você queira criar sua própria função de banco de dados e atribuir essas permissões conforme descrito acima. Para cada usuário (agora e no futuro), você pode simplesmente atribuí-los a essa função.

    
por 24.02.2010 / 16:34
3

O ideal seria criar um login do grupo do Windows para acesso de leitura a esses bancos de dados - atribua a função DATABASE db_datareader a esse grupo.

    
por 24.02.2010 / 16:35