Skip navigation
15232 Views 3 Replies Latest reply: Mar 10, 2010 8:24 PM by David Birmingham RSS
david.murray New Enzee 5 posts since
Nov 19, 2009
Currently Being Moderated

Mar 10, 2010 12:34 PM

Encryption - Best Practices and Load

Hi!  We're looking at using the encryption feature in the Extended SQL Toolkit to support our encryption requirements.  Sensitive data and such.  So it looks like it will work, and that's good.  Is this what people are using?

But also, will this work for a load utility?  nzload?  Or anything else?

Or would you use maybe an

insert into tablename

select col1, col2, col3, encrypt(col4, key)

from extendedTableName

?

Something like that.

 

Thanks!

  • David Birmingham Active Enzee 429 posts since
    Sep 24, 2007
    Currently Being Moderated
    1. Mar 10, 2010 1:44 PM (in response to david.murray)
    Re: Encryption - Best Practices and Load

    One of the practices mentioned in the SQL Toolkit user's guide is a "must have" - that is making a separate table containing your key, and then referencing the key by its index and not the value. If you put the key value itself into the SQL statement, then anyonw can look at query history, see the key value, and easily apply it to your data. By using the index of a table holding the key, you can lock down the table from curious eyes. They may know where the table is and what its name is, but cannot actually see its contents. Either way, if your SQL puts the key in the query itself, it may as well not encrypt at all.

     

    I would suggest not putting the encryption in the load, but load up a staging table, copy the data into the target table from the staging table with the encryption in the transfer. This will put the encryption in the parallel stream (e.g  a CTAS) rather than the loading stream and take the pressure off the host. Even as I write this, I am not sure you can actually use this part of the SQL toolkit in the nzload and I don't have immediate access to a machine to check it out. Either way, it's always better to do computations in the parallel stream, not on nzload, because nzload comes through the host and is not as strong in the transformation as the parallel streams are.

  • David Birmingham Active Enzee 429 posts since
    Sep 24, 2007
    Currently Being Moderated
    3. Mar 10, 2010 8:24 PM (in response to david.murray)
    Re: Encryption - Best Practices and Load

    This is what I mentioned should be avoided. Selecting from an external table into a parallel table should contain a minimum of transformation SQL because it will always be executed by the host, not the parallel streams. Rather intake the file via nzload and then do the transforms in parallel

     

    See my blog entry "Honor the Host" in the Gather 'Round the Grill blog (on this site) that directly addresses this issue

More Like This

  • Retrieving data ...

Bookmarked By (0)

Legend

  • Correct Answers - 4 points
  • Helpful Answers - 2 points