Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à : SQL Server 2016 (13.x) et versions ultérieures
Azure SQL Database
Azure SQL Managed Instance
SQL database in Microsoft Fabric
Pour sécuriser les tables temporelles, vous devez comprendre les principes de sécurité qui s’y appliquent. Après avoir compris ces principes, vous pouvez appliquer la sécurité aux instructions CREATE TABLE, ALTER TABLE et SELECT.
Principes de sécurité
Le tableau suivant décrit les principes de sécurité qui s’appliquent aux tables temporelles :
| Principe | Description |
|---|---|
| L'activation/désactivation de la version du système requiert les privilèges les plus élevés sur les objets concernés | L’activation et la désactivation de SYSTEM_VERSIONING requièrent l’autorisation CONTROL à la fois sur la table actuelle et sur la table d’historique. |
| Les données d’historique ne peuvent pas être modifiées directement | Quand SYSTEM_VERSIONING est ON, les utilisateurs ne peuvent pas modifier les données d’historique, indépendamment de leurs permissions sur la table actuelle ou historique. Cette limitation inclut les modifications de schéma et des données.
1 |
L’interrogation des données d’historique nécessite l’autorisation SELECT sur la table d’historique |
Un utilisateur disposant d’une autorisation SELECT sur la table actuelle n’a pas automatiquement l’autorisation SELECT sur la table d’historique. |
| L'audit révèle les opérations qui affectent la table d'historique de manière spécifique | Les paramètres d’audit de la table actuelle ne sont pas appliqués automatiquement à la table d’historique. Vous devez activer explicitement l’audit pour la table d’historique. Après l’avoir activé, l’audit de la table d’historique capture toutes les tentatives directes d’accès aux données, qu’elles réussissent ou non.SELECT avec l’extension de requête temporelle indique que l’opération a affecté la table d’historique.CREATE/ALTER La table temporelle indique que la vérification des autorisations s’effectue également sur la table d’historique. Le fichier d'audit contient des enregistrements supplémentaires pour la table d'historique.Les opérations de langage de manipulation de données (DML) sur la table actuelle révèlent que l’opération a affecté la table d’historique, mais additional_information fournit le contexte nécessaire (DML était le résultat de SYSTEM_VERSIONING). |
1 Si vous avez ALTER la permission sur la table actuelle et la table historique, et que vous supprimez une colonne dans la table courante, la colonne associée dans la table historique est également supprimée, même si SYSTEM_VERSIONING est ON.
Effectuer des opérations sur le diagramme
Lorsque SYSTEM_VERSIONING est défini sur ON, les opérations de modification de schéma sont limitées.
Opérations interdites ALTER SCHEMA
| Operation | Tableau actuel | Table d’historique |
|---|---|---|
DROP TABLE |
Rejeté | Rejeté |
ALTER TABLE...SWITCH PARTITION |
SWITCH IN uniquement (consultez Partition avec des tables temporelles) |
SWITCH OUT uniquement (consultez Partition avec des tables temporelles) |
ALTER TABLE...DROP PERIOD |
Rejeté | N/A |
ALTER TABLE...ADD PERIOD |
N/A | Rejeté |
Opérations autorisées ALTER TABLE
| Operation | Current | Historique |
|---|---|---|
ALTER TABLE...REBUILD |
Autorisé (indépendamment) | Autorisé (indépendamment) |
CREATE INDEX |
Autorisé (indépendamment) | Autorisé (indépendamment) |
CREATE STATISTICS |
Autorisé (indépendamment) | Autorisé (indépendamment) |
Sécurité de l’instruction CREATE TEMPORAL TABLE
| Fonctionnalité | Créer une nouvelle table d’historique | Réutiliser la table d’historique existante |
|---|---|---|
| Autorisation requise | Autorisation CREATE TABLE dans la base de donnéesALTER Permission sur les schémas où vous créez les tables actuelles et historiques |
Autorisation CREATE TABLE dans la base de donnéesALTER Permission sur le schéma où vous créez la table actuelle.Autorisation CONTROL sur la table d’historique spécifiée dans le cadre de l’instruction CREATE TABLE qui crée la table temporelle. |
| Audit | L’audit révèle que les utilisateurs ont essayé de créer deux objets. L’opération peut échouer faute d’autorisations pour créer une table dans la base de données, ou faute d’autorisations pour modifier les schémas de l’une ou l’autre table. | L’audit indique que la table temporelle a été créée. L’opération peut échouer en raison d’autorisations insuffisantes pour créer une table dans la base de données, en raison d’autorisations insuffisantes pour modifier le schéma de la table temporelle, ou d’autorisations insuffisantes sur la table d’historique. |
Sécurité de l’instruction ALTER de la table SET temporelle (SYSTEM_VERSIONING)
| Fonctionnalité | Créer une nouvelle table d’historique | Réutiliser la table d’historique existante |
|---|---|---|
| Autorisation requise | Autorisation CONTROL dans la base de données.Autorisation CREATE TABLE dans la base de données.ALTER Permission sur les schémas où vous créez la table d’historique. |
CONTROL Permission sur la table originale que vous modifiez.CONTROL autorisation sur la table d’historique spécifiée dans l’instruction ALTER TABLE. |
| Audit | L’audit indique que la table temporelle a été modifiée et que la table d’historique a été créée en même temps. Cette opération peut échouer en raison d’un manque d’autorisations pour créer une table dans la base de données, d’un manque d’autorisations pour modifier le schéma de la table d’historique, ou d’une absence d’autorisation pour modifier la table temporelle. | L’audit indique que la table temporelle a été modifiée, mais que l’opération nécessitait l’accès à la table d’historique. L’opération peut échouer en raison d’autorisations insuffisantes sur la table d’historique ou d’autorisations insuffisantes sur la table en cours. |
Sécurité de l’instruction SELECT
L’autorisation SELECT reste inchangée pour les instructions SELECT qui n’affectent pas la table d’historique. Pour les instructions SELECT qui affectent la table d’historique, vous devez disposer de l’autorisation SELECT sur la table actuelle et sur la table d’historique.
Contenu connexe
- Tables temporelles
- Bien démarrer avec les tables temporelles avec versions gérées par le système
- Vérifications de cohérence système des tables temporelles
- Partition avec des tables temporelles
- Considérations et limitations liées aux tables temporelles
- Gérer la conservation des données historiques dans les tables temporelles versionnées par le système
- Tables temporelles à versionnement géré par le système avec tables optimisées en mémoire
- Vues et fonctions des métadonnées des tables temporelles