Sécurisation des bases de données (SQL Server)

De Wiki1000
(Différences entre les versions)
(Droit des utilisateurs)
(2 révisions intermédiaires par un utilisateur sont masquées)
Ligne 1 : Ligne 1 :
 +
==Rôle et Droits des utilisateurs==
 +
Les droits minimaux pour un utilisateur Sage FRP 1000 sont rôle PUBLIC et droit ALTER
 +
 +
Pour créer un login et un utilisateur pour une base Sage FRP 1000 utilisant le schéma par défaut dbo :
 +
 +
<pre>
 +
USE MASTER
 +
GO
 +
CREATE LOGIN mylogin WITH PASSWORD='mysecretpassword'
 +
GO
 +
 +
USE SAGEFRP1000DATABASE
 +
GO
 +
 +
CREATE USER mylogin FOR LOGIN mylogin WITH DEFAULT_SCHEMA=dbo
 +
GO
 +
 +
GRANT ALTER TO mylogin
 +
GO
 +
 +
USE MASTER
 +
GO
 +
</pre>
 +
 
==Encryptage des données sur disque==
 
==Encryptage des données sur disque==
 
TDE est une technologie de Microsoft SQL Server qui permet d'encrypter les données sur disques de manière transparente pour les Applications.
 
TDE est une technologie de Microsoft SQL Server qui permet d'encrypter les données sur disques de manière transparente pour les Applications.

Version du 30 juillet 2020 à 10:11

Sommaire

Rôle et Droits des utilisateurs

Les droits minimaux pour un utilisateur Sage FRP 1000 sont rôle PUBLIC et droit ALTER

Pour créer un login et un utilisateur pour une base Sage FRP 1000 utilisant le schéma par défaut dbo :

USE MASTER
GO
CREATE LOGIN mylogin WITH PASSWORD='mysecretpassword'
GO

USE SAGEFRP1000DATABASE
GO

CREATE USER mylogin FOR LOGIN mylogin WITH DEFAULT_SCHEMA=dbo
GO

GRANT ALTER TO mylogin
GO

USE MASTER
GO

Encryptage des données sur disque

TDE est une technologie de Microsoft SQL Server qui permet d'encrypter les données sur disques de manière transparente pour les Applications.

Voir ici : Transparent data encryption

Tip-20px.png Tip : TDE n'est disponible qu'à partir de la version SQL Enterprise ainsi que sur SQL Azure

A titre d'exemple la mise en oeuvre de TDE peut être réalisée sur la base des scripts suivants :

USE master;  
GO  
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'MySecretPassword';  
go  
CREATE CERTIFICATE MyServerCert WITH SUBJECT = 'My DEK Certificate';  
go  

USE dbMaster800TDESSL;  
GO  
CREATE DATABASE ENCRYPTION KEY  
WITH ALGORITHM = AES_128  
ENCRYPTION BY SERVER CERTIFICATE MyServerCert;  
GO  
ALTER DATABASE dbMaster800TDESSL  
SET ENCRYPTION ON;  
GO  

USE dbDemoSF800;  
GO  
CREATE DATABASE ENCRYPTION KEY  
WITH ALGORITHM = AES_128  
ENCRYPTION BY SERVER CERTIFICATE MyServerCert;  
GO  
ALTER DATABASE dbDemoSF800  
SET ENCRYPTION ON;  
GO  

Alternative à TDE

Il existe des solutions alternatives à la mise en oeuvre de TDE.

  • Bitlocker
Bitlocker est une solution de cryptage de disque mais n'offre pas le même niveau de sécurité que TDE, en particulier un utilisateur connecté sur le serveur peut accéder aux fichiers de données de SQL non cryptés. Il n'est pas recommandé d'utiliser Bitlocker.
  • SQL Server always encrypted (A partir SQL Server 2016 SP1)
SQL Server always encrypted nécessite des modifications de l'application et n'est pas supporté.
dbdefence est une solution tiers équivalente à TDE. dbdefence a été testé avec succès mais n'est pas supporté.

Sécurisation des connexions

SSL permet d'encrypter les connexions clientes et de chiffrer les données échangées entre le serveur et les clients.

Voir ici : Encrypting connections

Tip-20px.png Tip : SSL est activé par défaut sur SQL Azure

SSL peut être configuré coté serveur pour forcer toutes les connexions à utiliser SSL, ou bien coté client pour n'encrypter que certaines connexions.

Coté serveur :

Sql server ssl server.png

Coté client :

Sql server ssl client.png

Vérification de la connexion

Il est possible de vérifier que le chiffrement est bien activé sur une connexion avec les requêtes suivantes :

SELECT session_id, encrypt_option
FROM sys.dm_exec_connections

Sql server ssl check.png

Outils personnels