Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a: SQL Server 2016 (13.x) e versioni
successive database SQL di Azure
AzureSQL Managed Instance
SQL database in Microsoft Fabric
Per proteggere le tabelle temporali, devi comprendere i principi di sicurezza che vi si applicano. Dopo aver compreso questi principi, puoi applicare la sicurezza alle istruzioni CREATE TABLE, ALTER TABLE e SELECT.
Principi di sicurezza
La tabella seguente descrive i principi di sicurezza che riguardano le tabelle temporali:
| Principio | Description |
|---|---|
| Abilitare/disabilitare il controllo delle versioni di sistema richiede i privilegi più elevati per gli oggetti interessati | Per abilitare e disabilitare SYSTEM_VERSIONING è necessaria l’autorizzazione CONTROL sia per la tabella corrente che per quella di cronologia. |
| I dati di cronologia non possono essere modificati direttamente | Quando SYSTEM_VERSIONING è ON, gli utenti non possono modificare i dati della cronologia, indipendentemente dai loro permessi sulla tabella corrente o sulla tabella storica. Questa limitazione comprende sia le modifiche dei dati che quelle dello schema.
1 |
Per l'esecuzione di query sui dati di cronologia è richiesta l'autorizzazione SELECT per la tabella di cronologia |
Un utente con autorizzazione SELECT per la tabella corrente non dispone automaticamente dell'autorizzazione SELECT per la tabella di cronologia. |
| Il controllo rileva le operazioni che influiscono sulla tabella di cronologia in modi specifici | Le impostazioni di controllo della tabella corrente non vengono applicate automaticamente alla tabella di cronologia. Devi abilitare esplicitamente l'audit per la tabella storica. Dopo averlo abilitato, l'audit sulla tabella di cronologia cattura tutti i tentativi diretti di accesso ai dati, indipendentemente dal fatto che abbiano successo o meno.SELECT con l'estensione della query temporale mostra che l'operazione ha influenzato la tabella storica.CREATE/ALTER la tabella temporale rivela che il controllo delle autorizzazioni viene eseguito anche sulla tabella cronologica. Il file di controllo contiene record aggiuntivi per la tabella di cronologia.Le operazioni di manipolazione del linguaggio dati (DML) sulla tabella corrente rivelano che l'operazione ha influenzato la tabella storica, ma additional_information fornisce il contesto necessario (DML è stato il risultato di SYSTEM_VERSIONING). |
1 Se hai ALTER il permesso sulla tabella corrente e sulla tabella storica, e inserisci una colonna nella tabella corrente, anche la colonna associata nella tabella storica viene eliminata, anche se SYSTEM_VERSIONING è ON.
Eseguire operazioni sullo schema
Quando SYSTEM_VERSIONING è impostato su ON, le operazioni di modifica dello schema sono limitate.
Operazioni non autorizzate ALTER SCHEMA
| Operation | Tabella corrente | Tabella di cronologia |
|---|---|---|
DROP TABLE |
Disallowed | Disallowed |
ALTER TABLE...SWITCH PARTITION |
Solo SWITCH IN (si veda Partizioni con tabelle temporali) |
Solo SWITCH OUT (si veda Partizioni con tabelle temporali) |
ALTER TABLE...DROP PERIOD |
Disallowed | N/A |
ALTER TABLE...ADD PERIOD |
N/A | Disallowed |
Operazioni consentite ALTER TABLE
| Operation | Current | History |
|---|---|---|
ALTER TABLE...REBUILD |
Consentito (indipendentemente) | Consentito (indipendentemente) |
CREATE INDEX |
Consentito (indipendentemente) | Consentito (indipendentemente) |
CREATE STATISTICS |
Consentito (indipendentemente) | Consentito (indipendentemente) |
Sicurezza dell'istruzione CREATE per le tabelle temporali
| Feature | Creare una nuova tabella di cronologia | Riutilizzare una tabella di cronologia esistente |
|---|---|---|
| Autorizzazione richiesta |
CREATE TABLE autorizzazione nel databaseALTER autorizzazione sugli schemi in cui si creano le tabelle correnti e cronologiche |
CREATE TABLE autorizzazione nel databaseALTER Permesso sullo schema dove crei la tabella corrente.Autorizzazione CONTROL nella tabella di cronologia specificata come parte dell'istruzione CREATE TABLE per la creazione della tabella temporale. |
| Audit | Dal controllo risulta che gli utenti hanno tentato di creare due oggetti. L'operazione potrebbe fallire per mancanza di permessi per creare una tabella nel database, o per mancanza di permessi per modificare gli schemi di entrambe le tabelle. | Il controllo mostra che la tabella temporale è stata creata. L'operazione potrebbe non riuscire a causa della mancanza di autorizzazioni per creare una tabella nel database, a causa della mancanza di autorizzazioni per la modifica dello schema per la tabella temporale o a causa della mancanza di autorizzazioni per la tabella di cronologia. |
Sicurezza della dichiarazione ALTER della tabella SET temporale (SYSTEM_VERSIONING)
| Feature | Creare una nuova tabella di cronologia | Riutilizzare una tabella di cronologia esistente |
|---|---|---|
| Autorizzazione richiesta | Autorizzazione CONTROL nel database.Autorizzazione CREATE TABLE nel database.ALTER Permesso sugli schemi dove crei la tabella storica. |
CONTROL Permesso sulla tabella originale che modifichi.Autorizzazione CONTROL nella tabella di cronologia specificata come parte dell'istruzione ALTER TABLE. |
| Audit | Il controllo indica che la tabella temporale è stata modificata e contemporaneamente è stata creata la tabella di cronologia. Questa operazione potrebbe fallire a causa della mancanza di permessi per creare una tabella nel database, della mancanza di permessi per modificare lo schema della tabella storica o della mancanza di permessi per modificare la tabella temporale. | Il controllo mostra che la tabella temporale è stata modificata, ma l'operazione ha richiesto l'accesso alla tabella di cronologia. L'operazione può non riuscire a causa della mancanza di autorizzazioni per la tabella di cronologia o per la tabella corrente. |
Sicurezza dell'istruzione SELECT
L'autorizzazione SELECT rimane invariata per le istruzioni SELECT che non influiscono sulla tabella di cronologia. Per le istruzioni SELECT che modificano la tabella della cronologia, sono necessarie le autorizzazioni SELECT sia sulla tabella corrente sia sulla tabella della cronologia.
Contenuti correlati
- Tabelle temporali
- Inizia a utilizzare le tabelle temporali versionate dal sistema
- Verifiche di coerenza del sistema delle tabelle temporali
- Partizioni con tabelle temporali
- Considerazioni e limitazioni delle tabelle temporali
- Gestire la conservazione dei dati storici nelle tabelle temporali versionate dal sistema
- Tabelle temporali versionate a livello di sistema con tabelle ottimizzate per la memoria
- Funzioni e viste per i metadati delle tabelle temporali