Nous recherchons une solution pour implémenter des colonnes "toujours chiffrées" dans une base de données, où nous utilisons en même temps de nombreuses tables temporaires SQL (#tmp).SQL 2016 Toujours des colonnes cryptées et des tables temporaires SQL (#temp)
Nous avons exploré le chemin alternatif - arrêtez d'utiliser les tables #temp, mais cela aurait un impact important sur notre application en termes de temps/coût.
Quelqu'un a-t-il trouvé un moyen d'écrire des requêtes comme "insert dans #tmp select from my_table", où my_table contient des colonnes AE?
J'ai essayé d'appliquer les mêmes clés CMK et CEK à la base de données tempdb, de sorte que je puisse créer la même structure pour la table #tmp, que la structure de my_table. Ceci ne résout cependant pas le problème - le fait que les tables de 2 bases de données différentes semblent empêcher le transfert de données.
Je suis à la recherche d'une solution SQL, et non pour une solution qui implique une application cliente (C#, vb, etc.) qui a accès à toutes les clés de cryptage.
Merci Nikhil - J'utilise l'insertion dans #tmp pour réduire le temps de traitement en sql. L'utilisation d'une application cliente va probablement augmenter cette fois-ci, n'est-ce pas? Si les temps d'exécution sont comparables, alors j'aimerais l'explorer ... –
Utilisez CTE au lieu de table temporaire. – Namphibian
Étant donné que les opérations de chiffrement sont exécutées en dehors de SQL Server côté client, vous encourez les coûts supplémentaires d'aller-retour et de surcharge de chiffrement pour le chiffrement et le déchiffrement. Vous analysez la performance en utilisant l'application C# et décidez si elle est tolérable pour votre cas d'utilisation. J'ai modifié la réponse pour inclure la façon dont vous le feriez avec C# @ andrei.toma –