Sécurité de la table temporelle
S’applique à : SQL Server 2016 (13.x) et versions ultérieures Azure SQL DatabaseAzure SQL Managed Instance
Pour comprendre la sécurité appliquée aux tables temporelles, il est important de comprendre les principes de sécurité qui s’appliquent aux tables temporelles. Une fois que vous avez compris ces principes de sécurité, vous serez prêt à approfondir la sécurité concernant les instructions CREATE TABLE, ALTER TABLEet 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/la désactivation du contrôle de version système requiert des autorisations maximales sur les objets affectés | L’activation et la désactivation de SYSTEM_VERSIONING nécessitent l’autorisation CONTROL sur la table en cours et la table d’historique |
Les données d’historique ne peuvent pas être modifiées directement | Lorsque SYSTEM_VERSIONING est défini sur ON, les utilisateurs ne peuvent pas modifier les données d’historique, quelles que soient leurs autorisations sur la table en cours ou la table d’historique. Cela inclut les modifications de schéma et des données. |
L’interrogation des données d’historique nécessite l’autorisation SELECT sur la table d’historique | Même si un utilisateur dispose de l’autorisation SELECT sur la table en cours, cela ne signifie pas qu’il dispose de l’autorisation SELECT sur la table d’historique. |
Opérations de surfaces d’audit qui affectent la table d’historique d’une manière spécifique : | Les paramètres d’audit de la table actuelle ne sont pas appliqués automatiquement à la table d’historique. L’audit doit être activé explicitement pour la table d’historique. Une fois activé, l’audit sur la table d’historique capture régulièrement toutes les tentatives directes d’accès aux données (même si elles ont échoué). SELECT avec une extension de requête temporelle indique que la table d’historique a été affectée par cette opération. La table temporelleCREATE/ALTER expose les informations relatives à la vérification d’autorisation sur la table d’historique également. Le fichier d’audit contient un enregistrement supplémentaire pour la table d’historique. Les opérations DML sur la table en cours indiquent que la table d’historique a été affectée, mais additional_info fournit le contexte nécessaire (DML était le résultat de system_versioning). |
Exécution d’opérations de schéma
Lorsque SYSTEM_VERSIONING est défini sur ON, les opérations de modification de schéma sont limitées.
Opérations de schéma ALTER interdites
Opération | Table en cours | Table d’historique |
---|---|---|
DROP TABLE | Interdit | Interdit |
ALTER TABLE...SWITCH PARTITION | SWITCH IN uniquement (consultez Partitionnement des tables temporelles) | SWITCH OUT uniquement (consultez Partitionnement des tables temporelles) |
ALTER TABLE...DROP PERIOD | Interdit | - |
ALTER TABLE...ADD PERIOD | - | Interdit |
Opérations ALTER TABLE autorisées
Opération | 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 |
---|---|---|
Autorisations requises | AutorisationCREATE TABLE dans la base de données AutorisationALTER sur les schémas dans lesquels les tables en cours et d’historique sont créées |
AutorisationCREATE TABLE dans la base de données AutorisationALTER sur le schéma dans lequel la table en cours va être créée AutorisationCONTROL 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 en raison d’autorisations insuffisantes pour créer une table dans la base de données ou en raison d’autorisations insuffisantes pour modifier les schémas des tables. | 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 en raison d’autorisations insuffisantes sur la table d’historique. |
Sécurité de l’instruction ALTER Temporal TABLE SET (SYSTEM_VERSIONING ON/OFF)
Fonctionnalité | Créer une nouvelle table d’historique | Réutiliser la table d’historique existante |
---|---|---|
Autorisations requises | AutorisationCONTROL dans la base de données AutorisationCREATE TABLE dans la base de données AutorisationALTER sur les schémas dans lesquels la table d’historique est créée |
AutorisationCONTROL sur la table d’origine qui est modifiée AutorisationCONTROL sur la table d’historique spécifiée dans le cadre de 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. 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 d’historique, ou en raison d’autorisations insuffisantes 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’autorisationSELECT 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, l’autorisation SELECT est nécessaire sur la table en cours et la table d’historique.
Voir aussi
- Tables temporelles
- Prise en main des tables temporelles avec versions gérées par le système
- Vérifications de cohérence système des tables temporelles
- Partitionnement des tables temporelles
- Considérations et limitations liées aux tables temporelles
- Gérer la rétention des données d’historique dans les tables temporelles avec contrôle de version par le système
- Tables temporelles avec version gérée par le système avec tables à mémoire optimisée
- Vues et fonctions de métadonnées de table temporelle
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour