混合全数据库加密和列加密

Mixing Full Database Encryption with Column Encryption

如果您使用 AES-256 完全加密您的数据库,是否有任何理由也加密个别列?除了性能,还有什么理由不这样做吗?

我问的原因是因为我们目前正在加密特定列而不是数据库,并且正准备迁移到完整的数据库加密模型。保持列加密会容易得多,因为我们不必更改任何代码。如果除了我个人的懒惰之外还有一个令人信服的理由,我绝对可以用它来支持我的案子。

我能想到的对列以及整个数据库进行加密的最佳理由是用于不止一个级别的访问。拥有数据库密钥的人可以看到数据库模式和未加密的列,但看不到加密列的内容。可能有用,例如,如果您有一个有病史的住院患者数据库。更多的工作人员可能需要知道病人是谁、他们的近亲、他们的账单信息,而不是需要知道他们病情的细节。即使法律不要求严格访问您所在地区的医疗信息,医院政策也可能如此。

性能是我能想到的反对加密列的唯一原因。好吧,这及其对它们的限制,即加密列不能用于密钥,或者至少不能在不增加系统复杂性的情况下以这种方式使用。