Segurança de usuário de linha única no MS SQL 2008 R2

1

Eu tenho uma pergunta sobre SQL Server 2008R2 sobre como fazer uma única linha de uma maneira estranha.

situação: Eu tenho um banco de dados de registros de alunos no qual ~ 100 alunos podem estar em processo em um determinado dia. Eles entram em uma boa quantidade de PII. Infelizmente, eles frequentemente precisam salvar os dados e voltar mais tarde para atualizar ou concluir o registro porque precisam de uma ou outra informação. Nesse ponto, eles precisam voltar para a entrada incompleta original e adicionar as informações necessárias para adicionar. Isso pode ocorrer a qualquer momento durante a semana inicial do curso, dependendo da programação, e da dificuldade em recuperar as informações necessárias para concluir o banco de dados.

Problema: tenho vários grupos de pessoas que precisam ler e modificar as informações do aluno. Vários membros da equipe precisam ser capazes de extrair algumas dessas informações, os gerentes de cursos normalmente precisam lê-los para compilar relatórios estatísticos, e os instrutores precisam acessá-los o tempo todo para adicionar notas, etc. Os alunos PODEM precisar acessar mais tarde no curso para atualizar informações, mas isso não é típico. Meu principal problema é que eu preciso que os alunos tenham acesso de leitura e escrita somente a THE ROW, enquanto instrutores e outros. precisa ser capaz de ler e gravar em todas as linhas. Com a integração do AD, tudo funciona, EXCETO que um aluno poderia potencialmente abrir o "arquivo" (linha) de outro aluno e visualizar suas informações pessoais.

Como posso bloquear uma linha para um aluno enquanto ainda permite que a equipe administrativa e os instrutores leiam e potencialmente escrevam o acesso? Eu sou um show de um homem, então eu preciso automatizar o máximo possível, e o SQL não é o meu ponto strong. Eu considerei usar certificados (nós temos nossa própria CA interna) e / ou IDs de usuário AD, mas não tenho certeza de como implementá-lo, ou se essa é realmente a melhor escolha.

    
por Rick Dawson 15.03.2015 / 00:27

1 resposta

0

Além do comentário do dartonw, você pode considerar usar apenas procedimentos e visualizações armazenados para acesso ao banco de dados em vez de acesso bruto. Você pode definir permissões nos SPs e Views para usuários específicos. Você pode então usar visões específicas e SPs para obter diferentes conjuntos de resultados.

No entanto, eu concordaria com outros comentaristas que a segurança em nível de linha no SQL Server Edition deve ser tratada no nível do aplicativo, e não no nível do banco de dados.

    
por 28.05.2015 / 16:23