我们正在使用真棒&快速的OrmLite(ServiceStack)库作为我们的microORM连接到我们的PostgreSQL数据库。
我们在PostgreSQL数据库中启用了TDE加密。为确保在查询之前解密相关数据,我们需要执行以下操作:
Db.ExecuteSql(string.Format("SELECT pgtde_begin_session('{0}');", tdeKey));
最后:
Db.ExecuteSql("SELECT pgtde_end_session();");
我们可以确保在每次调用之前和之后执行这些sql语句,而不是将它们插入到每个RequestDto方法中。
答案 0 :(得分:2)
您可以尝试使用OrmLite Exec Filter,例如:
public class PgSqlSecureSessionFilter : OrmLiteExecFilter
{
public override T Exec<T>(IDbConnection db, Func<IDbCommand, T> filter)
{
try
{
db.Execute("SELECT pgtde_begin_session(@tdeKey)", new { tdeKey });
return base.Exec(db, filter);
}
finally {
db.Execute("SELECT pgtde_end_session();");
}
}
}
OrmLiteConfig.ExecFilter = new PgSqlSecureSessionFilter();