Créer une vue SQL Server avec encryptage

Comment créer une vue SQL Server avec l’option d’encryptage ? L’option WITH ENCRYPTION en Anglais ou chiffrement en Français permet de masquer le code la vue. Voici un exemple de code en langage T-SQL pour créer une vue avec l’option WITH ENCRYPTION.

Créer une vue SQL Server avec l’option d’encryptage

Tout d’abord, voici le tutoriel original avec le script de création de la vue des ventes utilisée dans l’exemple et dans bien d’autres tutoriels.

Définition du chiffrement

De plus, avant de voir le code de la vue avec chiffrement et son principe, que signifie le chiffrement ? Le chiffrement, au sens classique signifie de masquer des données en remplaçant chaque lettre par une autre lettre. Pour cela un système de chiffrement utilise deux types de clefs :

  • Une clé publique (ou fonction à sens unique) qui permet uniquement d’encrypter un message sans le déchiffrer
  • Une clé privée qui permet de déchiffrer un message

Ainsi par sécurité communique la clef publique et jamais la clef privée.

Script SQL pour créer une vue avec l’option de chiffrement

Utiliser le code SQL suivant pour créer une vue SQL Server avec CREATE VIEW et l’option WITH ENCRYPTION. Cette option masque donc le code T-SQL dans la table système sys.syscomments.

Dans l’exemple ci-dessous, créer deux vues :

  • La vue V_SALES qui est une vue classique c’est à dire sans l’option d’encryptage
  • La vue V_SALES_E avec l’option de chiffrement activé.
CREATE VIEW [dbo].[V_SALES]
AS 
	SELECT [Year]
		  ,[MonthName]
		  ,[MonthCurrent]
		  ,[NumberMonth]
		  ,[EmployeeNumber]
		  ,[NumberOfClients]
		  ,[NumberOfSales]
		  ,[Amount_ET]
		  ,[Amount_IT]
	  FROM [dbo].[SALES];
GO

CREATE VIEW [dbo].[V_SALES_E]
WITH ENCRYPTION 
AS 
	SELECT [Year]
		  ,[MonthName]
		  ,[MonthCurrent]
		  ,[NumberMonth]
		  ,[EmployeeNumber]
		  ,[NumberOfClients]
		  ,[NumberOfSales]
		  ,[Amount_ET]
		  ,[Amount_IT]
	  FROM [dbo].[SALES];
GO

Ainsi l’option WITH ENCRYPTION chiffre et masque simplement le code SQL de la vue dans la table système sys.syscomments pour que la vue ne soit pas publiée si la réplication SQL Server est utilisée.

Pour vérifier le fonctionnement de cette option il suffit d’exécuter une requête sur la table système sys.syscomments:

Créer une vue avec encryptage masque le code dans la table système
Créer une vue avec encryptage masque le code dans la table système

Le code de la première vue est bien visible tandis que celui de la deuxième vue avec le chiffrement activé ne l’est pas.

Note: L’option n’encrypte donc pas les données mais le code de la vue. Pour cela il existe des fonctions de chiffrement SQL Server pour masquer et chiffre les données sensibles dans les bases MSSQL.

Pour aller plus loin et découvrir des vues avec des agrégations et des conditions, voici un tutoriel pour créer des vues SQL Server avec des scripts.

Soyez le premier à commenter

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.


*