Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

proteger o procedimento armazenado pela definição de exibição de negação


Não está claro qual é o seu objetivo:você está tentando proteger a propriedade intelectual; impedir que os usuários vejam informações confidenciais no código-fonte (por exemplo, senhas); impedir que os usuários alterem os próprios procedimentos ou algo mais? Seus usuários são usuários internos em sua própria empresa ou são clientes externos? Eles hospedam o banco de dados e o aplicativo ou você?

Para proteger a propriedade intelectual:
  • Os usuários (clientes?) assinaram um NDA ou contrato que especifica seus termos e condições e inclui penalidades pela divulgação de sua propriedade intelectual
  • Mova as informações confidenciais para um serviço que você hospeda e expõe como um serviço da Web

Para evitar que os usuários vejam o código-fonte:
  • CRIAR PROCEDIMENTO COM CRIPTOGRAFIA - isso apenas impede que usuários 'normais' vejam o código, não parará um determinado usuário com permissões de administrador de sistema
  • Escreva um procedimento CLR em .NET em vez de usar TSQL
  • Mova as informações confidenciais para um aplicativo cliente compilado
  • Mova as informações confidenciais para um serviço que você hospeda e expõe como um serviço da Web

Para evitar que os usuários alterem os procedimentos:
  • Não dê a eles as permissões necessárias

No final, um determinado usuário com permissões de sysadmin sempre fará engenharia reversa, depurará, descompilará ou descobrirá a lógica em seu código. Portanto, você precisa ser muito claro sobre exatamente o que está tentando evitar, qual é o impacto potencial sobre você ou sua empresa e quanto tempo e dinheiro está disposto a investir na prevenção.