Claims
- 1. A method for facilitating encryption of data within a column of a database, comprising:
receiving a command to perform a database operation; parsing the command to create a parse tree; examining the parse tree to determine if a column referenced in the parse tree is an encrypted column; and if so, automatically transforming the command to include one or more cryptographic commands to facilitate accessing the encrypted column while performing the database operation.
- 2. The method of claim 1, wherein if the database operation includes a reference operation from the encrypted column, the method further comprises transforming the database operation to decrypt data retrieved from the encrypted column during the reference operation.
- 3. The method of claim 1, wherein if the command includes an update operation to the encrypted column, the method further comprises transforming the update operation to encrypt data being updated in the encrypted column during the update operation.
- 4. The method of claim 1, wherein if a column is encrypted the method further comprises identifying a cryptographic key for the column.
- 5. The method of claim 1, wherein examining the parse tree further comprises:
determining if the command includes an explicit command to encrypt the column in the database; and if so, encrypting the column.
- 6. The method of claim 1, wherein examining the parse tree further comprises:
determining if the command includes an operation to change an encryption key for the column; and if so,
decrypting the column with a current encryption key, and encrypting the column with a new encryption key.
- 7. The method of claim 1, wherein examining the parse tree further comprises:
determining if the command includes an explicit command to decrypt the column in the database; and if so, decrypting the column.
- 8. The method of claim 1, wherein examining the parse tree further comprises:
determining if the command includes an explicit command to change an encryption algorithm for the column; and if so,
decrypting the column using a previous encryption algorithm, and encrypting the column using a new encryption algorithm.
- 9. A computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for facilitating encryption of data within a column of a database, the method comprising:
receiving a command to perform a database operation; parsing the command to create a parse tree; examining the parse tree to determine if a column referenced in the parse tree is an encrypted column; and if so, automatically transforming the command to include one or more cryptographic commands to facilitate accessing the encrypted column while performing the database operation.
- 10. The computer-readable storage medium of claim 9, wherein if the database operation includes a reference operation from the encrypted column, the method further comprises transforming the database operation to decrypt data retrieved from the encrypted column during the reference operation.
- 11. The computer-readable storage medium of claim 9, wherein if the command includes an update operation to the encrypted column, the method further comprises transforming the update operation to encrypt data being updated in the encrypted column during the update operation.
- 12. The computer-readable storage medium of claim 9, wherein if a column is encrypted the method further comprises identifying a cryptographic key for the column.
- 13. The computer-readable storage medium of claim 9, wherein examining the parse tree further comprises:
determining if the command includes an operation to encrypt the column in the database; and if so, encrypting the column.
- 14. The computer-readable storage medium of claim 9, wherein examining the parse tree further comprises:
determining if the command includes an explicit command to change an encryption key for the column; and if so,
decrypting the column with a current encryption key, and encrypting the column with a new encryption key.
- 15. The computer-readable storage medium of claim 9, wherein examining the parse tree further comprises:
determining if the command includes an explicit command to decrypt the column in the database; and if so, decrypting the column.
- 16. The computer-readable storage medium of claim 9, wherein examining the parse tree further comprises:
determining if the command includes an explicit command to change an encryption algorithm for the column; and if so,
decrypting the column using a previous encryption algorithm, and encrypting the column using a new encryption algorithm.
- 17. An apparatus for facilitating encryption of data within a column of a database, comprising:
a receiving mechanism configured to receive a command to perform a database operation; a parsing mechanism configured to parse the command to create a parse tree; an examining mechanism configured to examine the parse tree to determine if a column referenced in the parse tree is an encrypted column; and a transforming mechanism configured to automatically transform the command to include one or more cryptographic commands to facilitate accessing the encrypted column while performing the database operation.
- 18. The apparatus of claim 17, wherein the transforming mechanism is further configured to transform the database operation to decrypt data retrieved from the encrypted column during a reference operation if the database operation includes the reference operation from the encrypted column.
- 19. The apparatus of claim 17, wherein the transforming mechanism is further configured to transform the database operation to encrypt data being updated in the encrypted column during an update operation if the database operation includes the update operation to the encrypted column.
- 20. The apparatus of claim 17, further comprising an identifying mechanism configured to identify a cryptographic key for a column if the column is encrypted.
- 21. The apparatus of claim 17, further comprising:
a determining mechanism configured to determine if the command includes an explicit command to encrypt the column in the database; and an encrypting mechanism configured to encrypt the column if the command includes the explicit command to encrypt the column in the database.
- 22. The apparatus of claim 17, further comprising:
a determining mechanism configured to determine if the command includes an operation to change an encryption key for the column; a decrypting mechanism configured to decrypt the column with a current encryption key; and an encrypting mechanism configured to encrypt the column with a new encryption key.
- 23. The apparatus of claim 17, further comprising:
a determining mechanism configured to determine if the command includes an explicit command to decrypt the column in the database; and a decrypting mechanism configured to decrypt the column if the command includes the explicit command to decrypt the column in the database.
- 24. The apparatus of claim 17, further comprising:
a determining mechanism configured to determine if the command includes an operation to change an encryption algorithm for the column; a decrypting mechanism configured to decrypt the column with a current encryption algorithm; and an encrypting mechanism configured to encrypt the column with a new encryption algorithm.
RELATED APPLICATION
[0001] The subject matter of this application is related to the subject matter in a co-pending non-provisional application by Richard R. Wessman entitled, “Method and Apparatus for Automatic Database Encryption,” having Ser. No. 09/680,599, and filing date 6 Oct. 2000 (Attorney Docket No. OR00-03802).