Esporta (0) Stampa
Espandi tutto

Gestione di federazioni di database (database SQL di Azure)

Aggiornamento: gennaio 2015

ImportantImportante
L'implementazione corrente delle federazioni verrà ritirata con i livelli di servizio Web e Business. Valutare l'uso della scalabilità elastica per il database SQL di Azure per compilare una soluzione partizionata con scalabilità orizzontale nel database SQL di Azure. Per provarla, vedere Introduzione alla funzionalità di scalabilità elastica del database SQL di Azure (anteprima).

Viste, funzioni e istruzioni Transact-SQL possono essere usate per creare, modificare e monitorare le federazioni. In questo argomento vengono fornite informazioni sull'amministrazione delle federazioni.

Ciascuna federazione inizia con una radice e un membro di federazione iniziale. Queste federazioni vengono create usando l'istruzione CREATE FEDERATION. Dopo avere creato la federazione, è possibile creare una struttura della tabella federata tramite la connessione alla radice di federazione usando l'istruzione USE FEDERATION, quindi usando CREATE TABLE con la clausola FEDERATED ON.

Per scalare orizzontalmente una federazione, è possibile usare l'istruzione ALTER FEDERATION per suddividere un membro di federazione esistente in nuovi membri. L'operazione SPLIT identifica il membro da suddividere tramite il valore della chiave di federazione specificato nell'operazione. Il membro di federazione viene suddiviso in corrispondenza del valore specificato, restituendo due nuovi membri di federazione che contengono la somma totale delle righe precedentemente contenute nel membro di origine.

ALTER FEDERATION può essere usata anche per ridurre il numero di membri di federazione tramite l'operazione DROP AT. L'intervallo dei valori della chiave di federazione precedentemente coperto dal membro eliminato è passato a un membro adiacente e i dati precedentemente associati all'intervallo non vengono conservati da questa operazione.

noteNota
I membri di federazione non possono essere creati o eliminati usando i comandi CREATE DATABASE o DROP DATABASE.

L'istruzione DROP FEDERATION può essere usata per eliminare una federazione, compresi tutti i membri di federazione e altri metadati associati nonché oggetti logici.

Inoltre, ALTER DATABASE è completamente supportato nei membri di federazione.

Sebbene sia possibile connettersi direttamente al database fisico contenente i dati della federazione, questo metodo di connessione non è ottimale in quanto si basa sulla conoscenza dei nomi dei singoli database dei membri. L'istruzione USE FEDERATION fornisce una connettività più semplice poiché indirizza tutte le connessioni tramite la radice di federazione e non richiede la conoscenza dei nomi dei singoli database dei membri, ma solo del nome e della chiave di federazione.

È possibile filtrare le connessioni usando la clausola WITH FILTERING=ON, in modo che le operazioni nella connessione vengano definite a livello di ambito solo per l'unità atomica della federazione corrispondente al valore della chiave di federazione. Con il filtro attivato, Query Processor aggiunge un predicato contenente il valore della chiave di federazione sulla colonna di federazione a ogni query che si riferisce a una tabella federata.

WarningAvviso
Un'unità atomica della federazione non è un limite di sicurezza e con Query Processor non viene garantito l'isolamento completo delle informazioni tra unità all'interno dello stesso membro della federazione. Non è opportuno basarsi sul filtro come meccanismo di isolamento di sicurezza.

Per determinare se una connessione viene filtrata o meno, sys.dm_exec_sessions restituisce una colonna is_filtered. I dati di questa colonna sono di tipo bit. Viene restituito 1 se la connessione viene filtrata, in caso contrario 0. Se la connessione viene filtrata, è possibile determinare il valore di filtro usando FEDERATION_FILTERING_VALUE.

L'autenticazione per i database contenenti le federazioni è uguale all'autenticazione per i database senza federazioni. Tuttavia la configurazione delle entità di sicurezza quali utenti e ruoli viene definita a livello di ambito nel database radice di federazione e non viene replicata automaticamente in alcun membro di federazione.

Gli utenti che dispongono di account di accesso non sono consentiti nei membri di federazione. Al contrario, gli account utente creati in un membro di federazione sono collegati all'account con lo stesso nome nella radice di federazione. I ruoli dei membri di federazione vengono gestiti come in un database non federato.

Quando viene creato il primo membro di federazione, l'account che esegue l'istruzione diventa il proprietario del membro di federazione. Per aggiungere un'entità esistente dalla radice di federazione al membro di federazione, è necessario che il proprietario del database crei un utente nel membro di federazione con l'istruzione CREATE USER e lo colleghi all'entità esistente nel database radice di federazione usando l'istruzione ALTER USER. Il nome utente deve corrispondere esattamente al nome dell'entità in sys.database_principals nella radice di federazione. La connessione degli utenti ai ruoli o di altri tipi di entità diversi da utenti non è supportata.

noteNota
Se il nome utente non corrisponde esattamente a un nome dell'entità esistente nella radice di federazione, l'istruzione non riuscirà con il seguente messaggio di errore:

'user_name' non è un nome utente valido o non si dispone dell'autorizzazione

Gli utenti e i ruoli all'interno del database radice di federazione vengono creati come fossero per un database non federato.

Gli utenti collegati possono essere usati come account utente normali all'interno di un membro di federazione. Possono essere inclusi nelle clausole EXECUTE AS e possono essere aggiunti ai ruoli. Con EXECUTE AS, la clausola WITH NO REVERT non è supportata perché per gli utenti collegati attendibilità e dbchaining non sono abilitati.

Nelle viste seguenti vengono fornite le informazioni sulle operazioni della federazione. Le informazioni vengono restituite in queste viste finché l'operazione è in esecuzione e vengono cancellate immediatamente una volta completata l'operazione.

 

Vista dell'operazione di federazione Descrizione

sys.dm_federation_operations

Restituisce le informazioni sulle operazioni a livello di federazione

sys.dm_federation_operation_members

Restituisce le informazioni sui membri di federazione implicati nelle operazioni

sys.dm_federation_operation_errors

Restituisce le informazioni sugli errori che si sono verificati durante le operazioni della federazione

sys.dm_federation_operation_error_members

Restituisce le informazioni sui membri di federazione implicati nelle operazioni che hanno rilevato un errore

I metadati aggiuntivi che descrivono federazioni, membri e schema di distribuzione usati all'interno della federazione possono essere ricavati dalle seguenti viste. Inoltre, sys.databases restituisce ora una colonna denominata is_federation_member che contiene un valore del bit che indica se un database è un membro di federazione.

 

Tabelle dei metadati della federazione Descrizione

sys.federations

Restituisce le federazioni all'interno di un database.

sys.federation_members

Restituisce i membri di federazione all'interno di una federazione.

sys.federation_distributions

Restituisce il tipo di distribuzione e i tipi di dati usati da una federazione.

sys.federation_member_distributions

Restituisce il nome della distribuzione e l'intervallo coperto da un membro di federazione.

sys.federated_table_columns

Restituisce informazioni specifiche sulla federazione nelle tabelle federate.

È possibile ottenere le informazioni cronologiche sulle operazioni di federazione tramite le viste della cronologia della federazione. Le informazioni consentono all'utente di ricostruire le informazioni sulla radice e sul membro della federazione, tra cui l'intervallo coperto da un membro, in qualsiasi momento. Di seguito è riportata la descrizione delle viste della cronologia della federazione.

 

Tabella della cronologia della federazione Descrizione

sys.federation_history

Restituisce le informazioni cronologiche sulle federazioni

sys.federation_member_history

Restituisce le informazioni cronologiche sui membri di federazione

sys.federation_distribution_history

Restituisce le informazioni cronologiche sul tipo di distribuzione e sul tipo di dati per una federazione

sys.federation_member_distribution_history

Restituisce le informazioni cronologiche sull'intervallo coperto da un membro di federazione.

Vedere anche

Mostra:
© 2015 Microsoft