none
Criptografar Coluna RRS feed

  • Pergunta

  • Boa tarde pessoal,

    Gostaria de uma ajuda.

    Tenho um ambiente com SQL-Server 2008R2 Enterprise.

    Estou com a necessidade de criptografar uma coluna do tipo text que armazena informações em XML e está coluna faz parte do Full Text Search.

    Os usuários internos e os usuários externos que fazem consultas através de uma aplicação não podem ver estes dados.

    DÚVIDA:

    De que modo posso criptograr esta coluna para que os usuários não vejam as informações e para que o Full Text Search continue executando?


    Obrigado, 
    Denis

    quarta-feira, 29 de outubro de 2014 17:09

Respostas

Todas as Respostas

  • Veja se esse artigo te ajuda: http://msdn.microsoft.com/pt-br/library/ms179331.aspx

    ou esse

    http://imasters.com.br/artigo/21391/sql-server/criptografia-de-dados-no-sql-server-simetrica-e-assimetrica/
    • Editado Mr. GMSOFT quarta-feira, 29 de outubro de 2014 17:12
    quarta-feira, 29 de outubro de 2014 17:11
  • Deleted
    quarta-feira, 29 de outubro de 2014 20:22
  • Denis,

    Concordo com o José, remova os acessos destes usuários para esta tabela e crie uma VIEW com esta coluna FULL Text criptografada apenas na VIEW.

    Se você criptografar a coluna diretamente na tabela, suas consultas no catálogo não vão interpretar o conteúdo armazenado e consequentemente não vão localizar a informação (até ser descriptografado).

    Dentro da VIEW você poderá criptografar a coluna, como o Mr.GMSOFT indicou.

    No Fórum americano houve uma questão semelhante, veja:

    https://social.msdn.microsoft.com/Forums/sqlserver/en-US/6ca191e9-bafc-4cf3-8040-66b41ca6d000/how-to-encrypt-column-data-which-is-configured-for-full-text-search?forum=transactsql

    Se ajudou na sua solução, não esqueça de marcar como resposta !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"

    quinta-feira, 30 de outubro de 2014 10:16
  • José,

    Desculpe se não entendi algum ponto.

    Se eu criar uma VIEW sem a coluna XML (Full Text) e apontar a aplicação para esta view como ela fará SELECT, INSERT e  UPDADE ? 

    Obrigado.

    Denis

    quinta-feira, 30 de outubro de 2014 13:52
  •  
    Denis, talvez o indicado seja criar uma visão (view) da tabela sem a coluna XML e definir que a aplicação não tem acesso direto à tabela, mas somente à visão.
     

        José Diz     Belo Horizonte, MG - Brasil



    José,

    Também acho uma boa solução!!! Simples e prática.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | SoroCódigos] @JuniorGalvaoMVP | pedrogalvaojunior.wordpress.com

    quinta-feira, 30 de outubro de 2014 14:23
    Moderador
  • Denis,

    No meu blog, você vai poder encontrar informações sobre Criptografia de dados, acesse:

    http://pedrogalvaojunior.wordpress.com/2009/03/12/criptografia-de-banco-de-dados-no-sql-server-2008/

    http://pedrogalvaojunior.wordpress.com/2008/11/05/criando-master-key-para-criptografia-no-sql-server-2005/

    http://pedrogalvaojunior.wordpress.com/2011/04/01/trabalhando-com-chave-simetricas-no-sql-server-2005-e-2008/

    http://pedrogalvaojunior.wordpress.com/2007/11/14/utilizando-a-funcao-hashbytes-para-criptografar-dados/


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | SoroCódigos] @JuniorGalvaoMVP | pedrogalvaojunior.wordpress.com

    quinta-feira, 30 de outubro de 2014 14:26
    Moderador
  • Denis,

    Vamos lá, toda e qualquer view consiste basicamente em utilizar um Select!!!

    No seu caso esta view será executada contendo a estrutura que esta definida no código dela, sem conter esta coluna XML.

    Na sua aplicação será transparente, o seu Insert e Update vai ser realizado sob sua tabela e não na view.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | SoroCódigos] @JuniorGalvaoMVP | pedrogalvaojunior.wordpress.com

    quinta-feira, 30 de outubro de 2014 14:29
    Moderador
  • Deleted
    quinta-feira, 30 de outubro de 2014 15:10
  • Deleted
    quinta-feira, 30 de outubro de 2014 16:10
  • José,

    Já pensei em alguns cenários, mas tenho algum pontos que me atrapalham.

    Está aplicação realiza INSERT, UPDATE, DELETE E SELECT.

    O usuário que a aplicação utiliza é o mesmo que alguns usuários conectam diretamente pelo Management Studio, tenho também outros usuários. Todos usuários fazem consultas com o operador CONTAINS.

    O datatype da coluna é TEXT e está defina como NULL , mas armazena as informações em XML, assim:

    <?xml version="1.0" encoding="ISO-8759-2"?>
    <DOC ID="4" create="OW" Dados="c:\diretório" classeDoc="PRODUCAO" tipo="0001" DocNome="Teste" 

    Muito obrigado pela ajuda.

    Att,

    Denis

    quinta-feira, 30 de outubro de 2014 17:14
  • Deleted
    sexta-feira, 31 de outubro de 2014 06:43