Differenze di T-SQL tra SQL Server e Istanza gestita di SQL di Azure
Si applica a:Azure SQL Managed Instance
Questo articolo riepiloga e illustra le differenze nella sintassi e nel comportamento tra Istanza gestita di SQL di Azure e SQL Server.
Istanza gestita di SQL offre una compatibilità elevata con il motore di database di SQL Server e la maggior parte delle funzionalità è supportata in un Istanza gestita di SQL.
Esistono alcune limitazioni di PaaS introdotte nell'istanza gestita di SQL e alcune modifiche funzionali rispetto a SQL Server. Le differenze sono suddivise nelle categorie seguenti:
- Disponibilità include le differenze relative a Gruppi di disponibilità Always On e backup.
- Sicurezza include le differenze relative a controllo, certificati, credenziali, provider del servizio di crittografia, accessi e utenti e chiave del servizio e chiave master del servizio.
- Configurazione include le differenze relative a estensione del pool di buffer, regole di confronto, livelli di compatibilità, mirroring del database, opzioni di database, SQL Server Agent e opzioni tabella.
- Le funzionalità includono BULK IN edizione Standard RT/OPENROW edizione Standard T, CLR, DBCC, transazioni distribuite, eventi estesi, librerie esterne, FILESTREAM e FileTable, ricerca semantica full-text, server collegati, PolyBase, Replica, RESTORE, Service Broker, stored procedure, funzioni e trigger.
- Impostazioni dell'ambiente come le configurazioni di reti virtuali e subnet.
La maggior parte di queste funzionalità sono vincoli di architettura e rappresentano le funzionalità del servizio.
I problemi noti temporanei individuati in Istanza gestita di SQL e verranno risolti in futuro sono descritti in Novità.
Nota
Microsoft Entra ID era precedentemente noto come Azure Active Directory (Azure AD).
Disponibilità
Gruppi di disponibilità AlwaysOn
La disponibilità elevata è incorporata in Istanza gestita di SQL e non può essere controllata dagli utenti. Le istruzioni seguenti non sono supportate:
- CREATE ENDPOINT FOR DATABASE_MIRRORING
- CREATE AVAILABILITY GROUP
- ALTER AVAILABILITY GROUP
- DROP AVAILABILITY GROUP
- Clausola SET HADR dell'istruzione ALTER DATABASE
Backup
Istanza gestita di SQL di Azure dispone di backup automatici, in modo che gli utenti possano creare backup completi del databaseCOPY_ONLY
. I backup differenziali, del log e di snapshot di file non sono supportati.
- Con un Istanza gestita di SQL è possibile eseguire il backup di un database di istanza solo in un account di archiviazione BLOB di Azure:
- È supportato solo
BACKUP TO URL
. FILE
,TAPE
e i dispositivi di backup non sono supportati.
- È supportato solo
- La maggior parte delle opzioni
WITH
generali è supportata.COPY_ONLY
è obbligatorio.FILE_SNAPSHOT
eCREDENTIAL
non sono supportati.- Le opzioni nastro
REWIND
,NOREWIND
,UNLOAD
eNOUNLOAD
non sono supportate. - Le opzioni specifiche dei log
NORECOVERY
,STANDBY
eNO_TRUNCATE
non sono supportate.
Limitazioni :
Con un Istanza gestita di SQL, è possibile eseguire il backup di un database di istanza in un backup con un massimo di 32 striping, sufficienti per i database fino a 4 TB se viene usata la compressione dei backup.
Non è possibile eseguire
BACKUP DATABASE ... WITH COPY_ONLY
in un database crittografato con TDE (Transparent Data Encryption) gestita dal servizio. La crittografia TDE gestita dal servizio impone la crittografia dei backup con una chiave TDE interna. La chiave non può essere esportata, quindi non sarà possibile ripristinare il backup. Usare i backup automatici e il ripristino temporizzato oppure usare TDE gestita dal cliente (BYOK). È anche possibile disabilitare la crittografia nel database.I backup nativi eseguiti in un Istanza gestita di SQL possono essere ripristinati solo in un'istanza di SQL Server 2022. Ciò è dovuto al fatto che Istanza gestita di SQL ha una versione del database interna superiore rispetto ad altre versioni di SQL Server. Per altre informazioni, vedere Ripristinare un backup del database Istanza gestita di SQL in SQL Server 2022.
Per eseguire il backup o il ripristino di un database da e verso un'archiviazione di Azure, è possibile eseguire l'autenticazione usando l'identità gestita o la firma di accesso condiviso (SAS) che è un URI che concede diritti di accesso limitati alle risorse Archiviazione di Azure altre informazioni. L'uso delle chiavi di accesso per questi scenari non è supportato.
La dimensione massima dello striping di backup usando il
BACKUP
comando in Istanza gestita di SQL è 195 GB, ovvero la dimensione massima del BLOB. Aumentare il numero di strisce nel comando di backup per ridurre la dimensione delle singole strisce e rimanere entro questo limite.Suggerimento
Per ovviare a questa limitazione, quando si esegue il backup di un database da SQL Server in un ambiente locale o in una macchina virtuale, è possibile:
- Eseguire il backup in
DISK
anziché inURL
. - Caricare i file di backup nell'archiviazione BLOB.
- Eseguire il ripristino in Istanza gestita di SQL.
Il
Restore
comando in Istanza gestita di SQL supporta dimensioni di BLOB maggiori nei file di backup perché viene usato un tipo di BLOB diverso per l'archiviazione dei file di backup caricati.- Eseguire il backup in
Per informazioni sui backup con T-SQL, vedere BACKUP.
Sicurezza
Controllo
Le differenze principali tra il controllo in Microsoft Azure SQL e in SQL Server sono le seguenti:
- Con Istanza gestita di SQL, il controllo funziona a livello di server. I file di log
.xel
vengono archiviati nell'archiviazione Blob di Azure. - Con database SQL di Azure, il controllo funziona a livello di database. I file di log
.xel
vengono archiviati nell'archiviazione Blob di Azure. - Con SQL Server, in locale o in macchine virtuali, il controllo funziona a livello di server. Gli eventi vengono archiviati nel file system o nei registri eventi di Windows.
Il controllo XEvent in Istanza gestita di SQL supporta le destinazioni di archiviazione BLOB di Azure. I log di file e di Windows non sono supportati.
Le principali differenze nella sintassi CREATE AUDIT
per il controllo in Archivio BLOB di Azure sono le seguenti:
- Viene fornita una nuova sintassi
TO URL
per specificare l'URL del contenitore di archiviazione BLOB di Azure in cui vengono inseriti i.xel
file. - La sintassi
TO FILE
non è supportata perché Istanza gestita di SQL non è in grado di accedere alle condivisioni file di Windows.
Per altre informazioni, vedi:
Certificati
Istanza gestita di SQL non è possibile accedere alle condivisioni file e alle cartelle di Windows, quindi si applicano i vincoli seguenti:
- La sintassi
CREATE FROM
/BACKUP TO
relativa ai file non è supportata per i certificati. - La sintassi
CREATE
/BACKUP
daFILE
/ASSEMBLY
per i certificati non è supportata. I file di chiavi private non possono essere usati.
Vedere CREATE CERTIFICATE e BACKUP CERTIFICATE.
Soluzione alternativa: invece di creare il backup del certificato e ripristinare il backup, ottenere il contenuto binario del certificato e la chiave privata, archiviarlo come file .sql e crearlo dal file binario:
CREATE CERTIFICATE
FROM BINARY = asn_encoded_certificate
WITH PRIVATE KEY (<private_key_options>);
Credenziali
Sono supportate identità gestite, Azure Key Vault e SHARED ACCESS SIGNATURE
identità. Gli utenti di Windows non sono supportati.
Vedere CREATE CREDENTIAL e ALTER CREDENTIAL.
Provider del servizio di crittografia
Istanza gestita di SQL non è possibile accedere ai file, quindi non è possibile creare provider di crittografia:
CREATE CRYPTOGRAPHIC PROVIDER
non è supportata. Vedere CREATE CRYPTOGRAPHIC PROVIDER.ALTER CRYPTOGRAPHIC PROVIDER
non è supportata. Vedere ALTER CRYPTOGRAPHIC PROVIDER.
Account di accesso e utenti
Gli account di accesso SQL creati con
FROM CERTIFICATE
,FROM ASYMMETRIC KEY
eFROM SID
sono supportati. Vedere CREATE LOGIN. Le entità server (account di accesso) vengono create a livello di server e gli utenti (entità di database) vengono creati a livello di database. Sono supportati gli account di accesso Microsoft Entra creati con la sintassi CREATE LOGIN e gli utenti di Microsoft Entra creati con la sintassi CREATE U edizione Standard R FROM LOGIN. Quando si crea un utente e si specificaFROM LOGIN
, l'utente è associato all'account di accesso e eredita i ruoli del server e le autorizzazioni assegnati.Istanza gestita di SQL supporta la creazione di utenti di database indipendenti basati sulle identità di Microsoft Entra con la sintassi
CREATE USER [AADUser/AAD group] FROM EXTERNAL PROVIDER
. Gli utenti creati in questo modo non sono associati alle entità server, anche se nel database esiste un'entitàmaster
server con lo stesso nome.Gli account di accesso di Windows creati con la sintassi
CREATE LOGIN ... FROM WINDOWS
non sono supportati. Usare account di accesso e utenti di Microsoft Entra.L'amministratore di Microsoft Entra per l'istanza dispone di privilegi di amministratore senza restrizioni.
Alcune funzionalità non supportano l'uso degli account di accesso di Microsoft Entra nelle interazioni tra istanze, ma solo all'interno di un singolo Istanza gestita di SQL, ad esempio la replica di SQL Server. La funzionalità server collegato supporta l'autenticazione tra istanze usando le entità server (account di accesso) di Microsoft Entra.
L'impostazione di un account di accesso di Microsoft Entra mappato a un gruppo Microsoft Entra come proprietario del database non è supportata. Un membro del gruppo Microsoft Entra può essere un proprietario del database, anche se l'account di accesso non è stato creato nel database.
È supportata la rappresentazione delle entità a livello di server Microsoft Entra usando altre entità Microsoft Entra, ad esempio la clausola EXECUTE AS . Le limitazioni di EXECUTE AS sono:
EXECUTE AS U edizione Standard R non è supportato per gli utenti di Microsoft Entra quando il nome è diverso dal nome di accesso. Un esempio è quando l'utente viene creato tramite la sintassi
CREATE USER [myAadUser] FROM LOGIN [john@contoso.com]
e la rappresentazione viene tentata tramiteEXEC AS USER = myAadUser
. Quando si crea un U edizione Standard R da un account di accesso di Microsoft Entra, specificare il user_name come lo stesso login_name da LOGIN.Solo gli account di accesso a livello di SQL Server che fanno parte del
sysadmin
ruolo possono eseguire le operazioni seguenti destinate alle entità microsoft Entra:- EXECUTE AS USER
- EXECUTE AS LOGIN
Per rappresentare un utente con l'istruzione EXECUTE AS, l'utente deve essere mappato direttamente all'account di accesso di Microsoft Entra. Gli utenti membri dei gruppi di Microsoft Entra mappati alle entità server di Microsoft Entra non possono essere rappresentati in modo efficace con l'istruzione EXECUTE AS, anche se il chiamante dispone delle autorizzazioni di rappresentazione per il nome utente specificato.
L'esportazione/importazione di database tramite file bacpac è supportata per gli utenti di Microsoft Entra in Istanza gestita di SQL usando SSMS V18.4 o versioni successive o SqlPackage.
- Le configurazioni seguenti sono supportate usando il file bacpac del database:
- Esportare/importare un database tra diverse istanze di gestione all'interno dello stesso dominio Microsoft Entra.
- Esportare un database da Istanza gestita di SQL e importarlo in database SQL all'interno dello stesso dominio Microsoft Entra.
- Esportare un database da database SQL e importarlo in Istanza gestita di SQL all'interno dello stesso dominio Microsoft Entra.
- Esportare un database da Istanza gestita di SQL e importare in SQL Server (versione 2012 o successiva).
- In questa configurazione, tutti gli utenti di Microsoft Entra vengono creati come entità di database di SQL Server (utenti) senza account di accesso. Il tipo di utenti è
SQL
e è visibile comeSQL_USER
insys.database_principals
. Le autorizzazioni e i ruoli rimangono nei metadati del database SQL Server e possono essere usati per la rappresentazione. Tuttavia, non possono essere usati per accedere e accedere a SQL Server usando le credenziali.
- In questa configurazione, tutti gli utenti di Microsoft Entra vengono creati come entità di database di SQL Server (utenti) senza account di accesso. Il tipo di utenti è
- Le configurazioni seguenti sono supportate usando il file bacpac del database:
Solo l'account di accesso dell'entità a livello di server, creato dal processo di provisioning Istanza gestita di SQL, i membri dei ruoli del server, ad esempio
securityadmin
osysadmin
o altri account di accesso con autorizzazione ALTER ANY LOGIN a livello di server, possono creare entità server (account di accesso) di Microsoft Entra nelmaster
database per Istanza gestita di SQL.Agli account di accesso basati sull'autenticazione SQL deve essere assegnato il
sysadmin
ruolo per creare account di accesso per le identità di Microsoft Entra.L'account di accesso deve essere membro dello stesso tenant di Microsoft Entra in cui è ospitato il Istanza gestita di SQL di Azure.
Le entità server (account di accesso) di Microsoft Entra sono visibili in Esplora oggetti a partire da SQL Server Management Studio 18.0 preview 5.
Un'entità server con livello di accesso sysadmin viene creata automaticamente per l'amministratore di Microsoft Entra dopo l'abilitazione in un'istanza di .
Durante l'autenticazione, per risolvere l'entità che esegue l'autenticazione viene applicata la sequenza seguente:
- Se l'account Microsoft Entra viene mappato direttamente a un account di accesso di Microsoft Entra, presente in
sys.server_principals
come tipo "E", concedere l'accesso e applicare le autorizzazioni di tale account di accesso. - Se l'account Microsoft Entra è membro di un gruppo di cui è stato eseguito il mapping a un account di accesso di Microsoft Entra, presente in
sys.server_principals
come tipo "X", concedere l'accesso e applicare le autorizzazioni di tale account di accesso. - Se l'account Microsoft Entra esiste come mappato direttamente a un utente di Microsoft Entra in un database, presente in
sys.database_principals
come tipo "E", concedere l'accesso e applicare le autorizzazioni dell'utente del database Microsoft Entra. - Se l'account Microsoft Entra è membro di un gruppo Microsoft Entra mappato a un utente di Microsoft Entra in un database, presente come
sys.database_principals
tipo "X", concedere l'accesso e applicare le autorizzazioni dell'utente del gruppo Microsoft Entra.
- Se l'account Microsoft Entra viene mappato direttamente a un account di accesso di Microsoft Entra, presente in
Chiave del servizio e chiave master del servizio
- Il backup della chiave master non è supportato (gestito dal servizio del database SQL).
- Il ripristino della chiave master non è supportato (gestito dal servizio del database SQL).
- Il backup della chiave master del servizio non è supportato (gestito dal servizio del database SQL).
- Il ripristino della chiave master del servizio non è supportato (gestito dal servizio del database SQL).
Impostazione
Estensione del pool di buffer
- L'estensione del pool di buffer non è supportata.
ALTER SERVER CONFIGURATION SET BUFFER POOL EXTENSION
non è supportata. Vedere ALTER SERVER CONFIGURATION.
Regole di confronto
Le regole di confronto di istanza predefinita sono SQL_Latin1_General_CP1_CI_AS
e possono essere specificate come un parametro di creazione. Vedere Regole di confronto.
Livelli di compatibilità
- I livelli di compatibilità supportati sono 100, 110, 120, 130, 140, 150 e 160.
- I livelli di compatibilità inferiori a 100 non sono supportati.
- Il livello di compatibilità predefinito per i nuovi database è 150. Per i database ripristinati, il livello di compatibilità rimane invariato se era uguale o superiore a 100.
Vedere Livello di compatibilità ALTER DATABASE.
Mirroring del database
Il mirroring del database non è supportato.
- Le opzioni
ALTER DATABASE SET PARTNER
eSET WITNESS
non sono supportate. CREATE ENDPOINT … FOR DATABASE_MIRRORING
non è supportata.
Per altre informazioni, vedere ALTER DATABASE SET PARTNER e SET WITNESS e CREATE ENDPOINT … FOR DATABASE_MIRRORING.
Opzioni di database
- I file di log multipli non sono supportati.
- Gli oggetti in memoria non sono supportati nel livello di servizio per utilizzo generico.
- È previsto un limite di 280 file per ogni istanza per Utilizzo generico, che implica un massimo di 280 file per database. I file di dati e i file di log nel livello Utilizzo generico vengono conteggiati per questo limite. Il livello Business Critical supporta 32.767 file per database.
- Il database non può contenere filegroup che contengono dati FILESTREAM. Il ripristino ha esito negativo se
.bak
contieneFILESTREAM
dati. - Ogni file viene inserito in Archiviazione BLOB di Azure. L'I/O e la velocità effettiva per file dipendono dalle dimensioni di ogni singolo file.
Istruzione CREATE DATABASE
Vengono applicate le limitazioni seguenti a CREATE DATABASE
:
Non possono essere definiti file e filegroup.
Un filegroup e un filegroup ottimizzati per la memoria vengono aggiunti automaticamente e vengono chiamati XTP.
L'opzione
CONTAINMENT
non è supportata.Le opzioni
WITH
non sono supportate.Suggerimento
Come soluzione alternativa, usare
ALTER DATABASE
dopoCREATE DATABASE
per impostare le opzioni di database per aggiungere file o per impostare l'indipendenza.L'opzione
FOR ATTACH
non è supportata.L'opzione
AS SNAPSHOT OF
non è supportata.
Per altre informazioni, vedere CREATE DATABASE.
ALTER DATABASE - istruzione
Alcune proprietà di file non possono essere impostate o modificate:
- Non è possibile specificare un percorso file nell'istruzione T-SQL
ALTER DATABASE ADD FILE (FILENAME='path')
. RimuovereFILENAME
dallo script perché Istanza gestita di SQL inserisce automaticamente i file. - Non è possibile modificare un nome file con l'istruzione
ALTER DATABASE
. - La modifica del file O del filegroup XTP non è consentita.
Le opzioni seguenti sono attive per impostazione predefinita e non possono essere modificate:
MULTI_USER
ENABLE_BROKER
AUTO_CLOSE OFF
Le opzioni seguenti non possono essere modificate:
AUTO_CLOSE
AUTOMATIC_TUNING(CREATE_INDEX=ON|OFF)
AUTOMATIC_TUNING(DROP_INDEX=ON|OFF)
DISABLE_BROKER
EMERGENCY
ENABLE_BROKER
FILESTREAM
HADR
NEW_BROKER
OFFLINE
PAGE_VERIFY
PARTNER
READ_ONLY
RECOVERY BULK_LOGGED
RECOVERY_SIMPLE
REMOTE_DATA_ARCHIVE
RESTRICTED_USER
SINGLE_USER
WITNESS
Alcune ALTER DATABASE
istruzioni, ad esempio edizione Standard T CONTAINMENT, potrebbero non riuscire temporaneamente, ad esempio durante il backup automatico del database o subito dopo la creazione di un database. In questo caso ALTER DATABASE
, è necessario ritentare l'istruzione . Per altre informazioni sui messaggi di errore correlati, vedere la sezione Osservazioni.
Per altre informazioni, vedere ALTER DATABASE.
SQL Server Agent
- L'abilitazione e la disabilitazione di SQL Server Agent non sono attualmente supportate nell'istanza gestita di SQL. SQL Agent è sempre in esecuzione.
- Il trigger di pianificazione dei processi basato su una CPU inattiva non è supportato.
- Le impostazioni di SQL Server Agent sono di sola lettura. La procedura
sp_set_agent_properties
non è supportata in Istanza gestita di SQL. - Processi
- I passaggi dei processi T-SQL sono supportati.
- Sono supportati i processi di replica seguenti:
- Lettore di log delle transazioni
- Snapshot
- Database di distribuzione
- I passaggi dei processi SSIS sono supportati.
- Altri tipi di passaggi di processo non sono attualmente supportati:
- Il passaggio del processo di replica di tipo merge non è supportato.
- La lettura della coda non è supportata.
- La shell dei comandi non è ancora supportata.
- Istanza gestita di SQL non può accedere a risorse esterne, ad esempio condivisioni di rete tramite robocopy.
- SQL Server Analysis Services non è supportato.
- Le notifiche sono supportate in modo parziale.
- Sono supportate le notifiche tramite posta elettronica, anche se è necessario configurare un profilo di Posta elettronica database. SQL Server Agent può usare un solo profilo di Posta elettronica database, che deve essere denominato
AzureManagedInstance_dbmail_profile
.- Pager non è supportato.
- NetSend non è supportato.
- Gli avvisi non sono ancora supportati.
- I proxy non sono supportati.
- EventLog non è supportato.
- L'utente deve essere mappato direttamente all'account di accesso del server Microsoft Entra per creare, modificare o eseguire processi di SQL Agent. Gli utenti di cui non è stato eseguito il mapping diretto, ad esempio gli utenti che appartengono a un gruppo Microsoft Entra che dispone dei diritti per creare, modificare o eseguire processi di SQL Agent, non potranno eseguire in modo efficace tali azioni. Ciò è dovuto alle limitazioni Istanza gestita di SQL rappresentazione e EXECUTE AS.
- La funzionalità multiserver Amministrazione istration per i processi master/target (MSX/TSX) non è supportata.
Per informazioni su SQL Server Agent, vedere SQL Server Agent.
Tabelle
I tipi di tabella seguenti non sono supportati:
- FILESTREAM
- FILETABLE
- EXTERNAL TABLE (ad eccezione di PolyBase)
- MEMORY_OPTIMIZED (non supportato solo nel livello Utilizzo generico)
Per informazioni sulla creazione e la modifica di tabelle, vedere CREATE TABLE e ALTER TABLE.
Funzionalità
BULK IN edizione Standard RT/OPENROW edizione Standard T
Istanza gestita di SQL non è possibile accedere alle condivisioni file e alle cartelle di Windows, quindi i file devono essere importati dall'archivio BLOB di Azure:
DATASOURCE
è obbligatorio nel comandoBULK INSERT
durante l'importazione dei file da un'archiviazione BLOB di Azure. Vedere BULK INSERT.DATASOURCE
è obbligatorio nella funzioneOPENROWSET
quando si legge il contenuto di un file da un'archiviazione BLOB di Azure. Vedere OPENROWSET.OPENROWSET
può essere usato per leggere i dati da database SQL di Azure, Istanza gestita di SQL di Azure o istanze di SQL Server. Altre origini, ad esempio database Oracle o file di Excel, non sono supportate.
CLR
Un Istanza gestita di SQL non può accedere alle condivisioni file e alle cartelle di Windows, quindi si applicano i vincoli seguenti:
- È supportato solo
CREATE ASSEMBLY FROM BINARY
. Vedere CREATE ASSEMBLY FROM BINARY. CREATE ASSEMBLY FROM FILE
non è supportata. Vedere CREATE ASSEMBLY FROM FILE.ALTER ASSEMBLY
non può fare riferimento a file. Vedere ALTER ASSEMBLY.
Posta elettronica database (db_mail)
sp_send_dbmail
non può inviare allegati usando @file_attachments il parametro . Il file system locale e le condivisioni esterne o Archiviazione BLOB di Azure non sono accessibili da questa procedura.- Vedere i problemi noti correlati al parametro
@query
e all'autenticazione.
DBCC
Le istruzioni DBCC non documentate abilitate in SQL Server non sono supportate in Istanza gestita di SQL.
- È supportato solo un numero limitato di flag di traccia globali.
Trace flags
a livello di sessione non sono supportati. Vedere Flag di traccia. - DBCC TRACEOFF e DBCC TRACEON funzionano con il numero limitato di flag di traccia globali.
- DBCC CHECKDB con opzioni REPAIR_ALLOW_DATA_LOSS, REPAIR_FAST e REPAIR_REBUILD non possono essere usate perché non è possibile impostare il database in
SINGLE_USER
modalità. Vedere le differenze tra ALTER DATABA edizione Standard. Il potenziale danneggiamento del database viene gestito dal team supporto tecnico di Azure. Contattare supporto tecnico di Azure in caso di danneggiamento del database.
Transazioni distribuite
Le transazioni distribuite basate su T-SQL e .NET tra istanze gestite sono disponibili a livello generale. Altri scenari, ad esempio transazioni XA, transazioni distribuite tra istanze gestite e altri partecipanti e altro ancora, sono supportati con DTC per Istanza gestita di SQL di Azure, disponibile in anteprima pubblica.
Eventi estesi
Alcune destinazioni specifiche di Windows per gli eventi estesi (XEvent) non sono supportate:
- La destinazione
etw_classic_sync
non è supportata. Archiviare i file.xel
nell'archiviazione BLOB di Azure. Vedere Destinazione etw_classic_sync_target. - La destinazione
event_file
non è supportata. Archiviare i file.xel
nell'archiviazione BLOB di Azure. Vedere Destinazione event_file.
Librerie esterne
Le librerie esterne R e Python nel database sono supportate in anteprima pubblica limitata. Vedere Machine Learning Services in Istanza gestita di SQL di Azure (anteprima).
FILESTREAM e FileTable
- I dati FILESTREAM non sono supportati.
- Il database non può contenere filegroup con dati
FILESTREAM
. FILETABLE
non è supportata.- Le tabelle non possono contenere tipi
FILESTREAM
. - Le funzioni seguenti non sono supportate:
GetPathLocator()
GET_FILESTREAM_TRANSACTION_CONTEXT()
PathName()
GetFileNamespacePat)
FileTableRootPath()
Per altre informazioni, vedere FILESTREAM e FileTable.
Ricerca semantica full-text
La ricerca semantica non è supportata.
Server collegati
I server collegati in Istanza gestita di SQL supportano un numero limitato di destinazioni:
- Le destinazioni supportate sono Istanza gestita di SQL, database SQL, pool serverless e dedicati di Azure Synapse SQL e istanze di SQL Server.
- Le destinazioni non supportate sono file, Analysis Services e altri sistemi di gestione di database relazionali (RDBMS). Provare a usare l'importazione CSV nativa da Archiviazione BLOB di Azure usando
BULK INSERT
o come alternativa per l'importazione di file o caricare file usando un pool SQL serverless in Azure Synapse AnalyticsOPENROWSET
.
Operazioni:
sp_dropserver
è supportato per l'eliminazione di un server collegato. Vedere sp_dropserver.- La funzione
OPENROWSET
può essere usata per eseguire query solo su istanze di SQL Server. Possono essere istanze gestite, locali o in macchine virtuali. Vedere OPENROWSET. - La funzione OPENDATASOURCE può essere usata per eseguire query solo nelle istanze di SQL Server. Possono essere istanze gestite, locali o in macchine virtuali. Un esempio è
SELECT * FROM OPENDATASOURCE('SQLNCLI', '...').AdventureWorks2022.HumanResources.Employee
. Solo iSQLNCLI
valori ,SQLOLEDB
SQLNCLI11
, eMSOLEDBSQL
sono supportati come provider. SQL Server Native Client (spesso abbreviato SNAC) è stato rimosso da SQL Server 2022 e SQL Server Management Studio 19 (SSMS). SQL Server Native Client (SQLNCLI o SQLNCLI11) e il provider Microsoft OLE DB legacy per SQL Server (SQLOLEDB) non sono consigliati per il nuovo sviluppo. Passare al nuovo Microsoft OLE DB Driver (MSOLEDBSQL) per SQL Server o alla versione più recente di Microsoft ODBC Driver per SQL Server. - I server collegati non possono essere usati per leggere i file (Excel, CSV) dalle condivisioni di rete. Provare a usare BULK IN edizione Standard RT, OPENROW edizione Standard T che legge i file CSV da Archiviazione BLOB di Azure o un server collegato che fa riferimento a un pool SQL serverless in Synapse Analytics. Tenere traccia di queste richieste in Istanza gestita di SQL elemento feedback
I server collegati in Istanza gestita di SQL di Azure supportano l'autenticazione SQL e l'autenticazione di Microsoft Entra.
PolyBase
La virtualizzazione dei dati con Istanza gestita di SQL di Azure consente di eseguire query Transact-SQL (T-SQL) sui dati dei file archiviati in Azure Data Lake Archiviazione Gen2 o Archiviazione BLOB di Azure e combinarli con dati relazionali archiviati in locale usando join. I formati di file parquet e delimitati (CSV) sono supportati direttamente. Il formato di file JSON è supportato indirettamente specificando il formato di file CSV in cui le query restituiscono ogni documento come riga separata. È possibile analizzare ulteriormente le righe usando JSON_VALUE
e OPENJSON
. Per informazioni generali su PolyBase, vedere PolyBase.
Inoltre, CREATE EXTERNAL TABLE AS edizione Standard LECT (CETAS) consente di esportare i dati dall'istanza gestita di SQL in un account di archiviazione esterno. È possibile usare CETAS per creare una tabella esterna sopra i file Parquet o CSV di Archiviazione BLOB di Azure o Azure Data Lake Archiviazione (ADLS) Gen2. CeTAS può anche esportare, in parallelo, i risultati di un'istruzione T-SQL edizione Standard LECT nella tabella esterna creata.
Replica
- Sono supportati i tipi di replica snapshot e bidirezionale. La replica di tipo merge, la replica peer-to-peer e le sottoscrizioni aggiornabili non sono supportate.
- La replica transazionale è disponibile per Istanza gestita di SQL con alcuni vincoli:
- Tutti i tipi di partecipanti alla replica (server di pubblicazione, server di distribuzione, Sottoscrittore pull e Sottoscrittore push) possono essere inseriti in Istanza gestita di SQL, ma il server di pubblicazione e il server di distribuzione devono essere sia nel cloud che in entrambi i server di distribuzione in locale.
- Istanza gestita di SQL può comunicare con le versioni recenti di SQL Server. Per altre informazioni, vedere la matrice delle versioni supportate.
- La replica transazionale presenta alcuni requisiti di rete aggiuntivi.
Per altre informazioni sulla configurazione della replica transazionale, vedere le esercitazioni seguenti:
- Replica tra un server di pubblicazione dell'istanza gestita di SQL e un sottoscrittore dell'istanza gestita di SQL
- Replica tra un server di pubblicazione di istanza gestita di SQL, un server di distribuzione istanza gestita di SQL e un sottoscrittore di SQL Server
Istruzione RESTORE
- Sintassi supportata:
RESTORE DATABASE
RESTORE FILELISTONLY
RESTORE HEADERONLY
RESTORE LABELONLY
RESTORE VERIFYONLY
- Sintassi non supportata:
RESTORE LOGONLY
RESTORE REWINDONLY
- Fonte:
FROM URL
(archiviazione BLOB di Azure) è l'unica opzione supportata.FROM DISK
/TAPE
/dispositivo di backup non è supportata.- I set di backup non sono supportati.
- Le opzioni
WITH
non sono supportate. I tentativi di ripristino, inclusiWITH
DIFFERENTIAL
,STATS
,REPLACE
e così via, avranno esito negativo.
Un'operazione di ripristino del database è asincrona e riprovabile in Istanza gestita di SQL di Azure. È possibile che venga visualizzato un errore in SSMS se la connessione non riesce o scade un timeout. Istanza gestita di SQL di Azure continua a tentare di ripristinare il database in background ed è possibile tenere traccia dello stato di avanzamento del processo di ripristino usando le viste a gestione dinamica sys.dm_exec_requests e sys.dm_operation_status.
Le opzioni di database seguenti sono impostate o sottoposte a override e non possono essere modificate in seguito:
NEW_BROKER
se il broker non è abilitato nel file con estensione bak.ENABLE_BROKER
se il broker non è abilitato nel file con estensione bak.AUTO_CLOSE=OFF
se un database nel file con estensione bak ha l'opzioneAUTO_CLOSE=ON
.RECOVERY FULL
se un database nel file .bak ha oBULK_LOGGED
ilSIMPLE
modello di recupero.- Un filegroup ottimizzato per la memoria viene aggiunto e denominato XTP se non era incluso nel file con estensione bak di origine.
- Qualsiasi filegroup ottimizzato per la memoria esistente viene rinominato come XTP.
- Le opzioni
SINGLE_USER
eRESTRICTED_USER
vengono convertite inMULTI_USER
.
Limitazioni :
- I backup dei database danneggiati potrebbero essere ripristinati a seconda del tipo di danneggiamento, ma i backup automatici non vengono eseguiti fino a quando non viene corretto il danneggiamento. Assicurarsi di eseguire
DBCC CHECKDB
nel Istanza gestita di SQL di origine e di usare il backupWITH CHECKSUM
per evitare questo problema. - Il ripristino del
.BAK
file di un database che contiene qualsiasi limitazione descritta in questo documento (ad esempio,FILESTREAM
oFILETABLE
oggetti) non può essere ripristinato in Istanza gestita di SQL. - I file
.BAK
che contengono più set di backup non possono essere ripristinati. - I file
.BAK
che contengono più file di log non possono essere ripristinati. - Non è possibile ripristinare in un'istanza per Utilizzo generico i backup che contengono database di dimensioni maggiori di 8 TB, oggetti OLTP in memoria attivi o un numero di file che supera i 280 file per ogni istanza.
- I backup che contengono database superiori a 4 TB o oggetti OLTP in memoria con dimensioni totali superiori alle dimensioni descritte nei limiti delle risorse non possono essere ripristinati nell'istanza business critical. Per informazioni sulle istruzioni restore, vedere Istruzioni RESTORE.
Importante
Le stesse limitazioni si applicano all'operazione di ripristino temporizzato predefinita. Ad esempio, non è possibile ripristinare in un'istanza Business Critical un database per Utilizzo generico di dimensioni maggiori di 4 TB. Non è possibile ripristinare in un'istanza per Utilizzo generico un database Business Critical con file OLTP in memoria o con più di 280 file.
Service Broker
Lo scambio di messaggi di Service Broker tra istanze è supportato solo per le istanze gestite di SQL di Azure:
CREATE ROUTE
: non è possibile usareCREATE ROUTE
conADDRESS
un nome diversoLOCAL
da o DNS di un altro Istanza gestita di SQL. La porta è sempre 4022.ALTER ROUTE
: non è possibile usareALTER ROUTE
conADDRESS
un nome diversoLOCAL
da o DNS di un altro Istanza gestita di SQL. La porta è sempre 4022.
La sicurezza del trasporto è supportata, la sicurezza della finestra di dialogo non è:
CREATE REMOTE SERVICE BINDING
non è supportato.
Service Broker è abilitato per impostazione predefinita e non può essere disabilitato. Le opzioni ALTER DATABA edizione Standard seguenti non sono supportate:
ENABLE_BROKER
DISABLE_BROKER
Stored procedure, funzioni e trigger
NATIVE_COMPILATION
non è supportato nel livello Utilizzo generico.- Le opzioni di sp_configure seguenti non sono supportate:
allow polybase export
allow updates
filestream_access_level
remote access
remote data archive
remote proc trans
scan for startup procs
- Le opzioni di sp_configure seguenti vengono ignorate e non hanno alcun effetto:
Ole Automation Procedures
sp_execute_external_scripts
è supportato solo per Machine Learning Services per SQL MI, altrimentisp_execute_external_scripts
non è supportato per Istanza gestita di SQL. Vedere sp_execute_external_scripts.xp_cmdshell
non è supportata. Vedere xp_cmdshell.Extended stored procedures
non sono supportati e includesp_addextendedproc
esp_dropextendedproc
. Questa funzionalità non sarà supportata perché si trova in un percorso di deprecazione per SQL Server. Per altre informazioni, vedere Stored procedure estese.sp_attach_db
,sp_attach_single_file_db
esp_detach_db
non sono supportate. Vedere sp_attach_db, sp_attach_single_file_db e sp_detach_db.
Funzione e variabili di sistema
Le variabili, funzioni e viste seguenti restituiscono risultati diversi:
SERVERPROPERTY('EngineEdition')
restituisce il valore 8. Questa proprietà identifica in modo univoco un Istanza gestita di SQL. Vedere SERVERPROPERTY.SERVERPROPERTY('InstanceName')
restituisce NULL perché il concetto di istanza esistente per SQL Server non si applica a Istanza gestita di SQL. Vedere SERVERPROPERTY('InstanceName').@@SERVERNAME
restituisce un nome DNS completo "connettibile", ad esempiomy-managed-instance.wcus17662feb9ce98.database.windows.net
. Vedere @@edizione Standard RVERNAME.SYS.SERVERS
restituisce un nome DNS completo "connettibile", ad esempiomyinstance.domain.database.windows.net
per le proprietà "name" e "data_source". Vedere SYS.edizione StandardRVERS.@@SERVICENAME
restituisce NULL perché il concetto di servizio esistente per SQL Server non si applica a Istanza gestita di SQL. Vedere @@edizione Standard RVICENAME.SUSER_ID
è supportato. Restituisce NULL se l'account di accesso di Microsoft Entra non è insys.syslogins
. Vedere SUSER_ID.SUSER_SID
non è supportata. Vengono restituiti dati errati, il che è un problema noto temporaneo. Vedere SUSER_SID.
Vincoli di ambiente
Subnet
- Non è possibile inserire altre risorse (ad esempio macchine virtuali) nella subnet in cui è stato distribuito il Istanza gestita di SQL. Distribuire queste risorse usando una subnet diversa.
- La subnet deve avere un numero sufficiente di indirizzi IP disponibili. Almeno 32 indirizzi IP nella subnet.
- Il numero di vCore e i tipi di istanze che è possibile distribuire in un'area presentano alcuni vincoli e limiti.
- È disponibile una configurazione di rete che deve essere applicata alla subnet.
Rete virtuale
- La rete virtuale può essere distribuita usando il modello di risorse. Il modello classico non supporta la distribuzione della rete virtuale.
- Dopo aver creato un'istanza gestita di SQL, lo spostamento dell'istanza gestita o della rete virtuale di SQL in un altro gruppo di risorse o sottoscrizione non è supportato.
- Per le istanze gestite di SQL ospitate in cluster virtuali creati prima del 22 settembre 2020, il peering globale della rete virtuale non è supportato. È possibile connettersi a queste risorse tramite ExpressRoute o da rete virtuale a rete virtuale tramite gateway di rete virtuale.
Gruppi di failover
I database di sistema non vengono replicati nell'istanza secondaria in un gruppo di failover. Di conseguenza, gli scenari che dipendono da oggetti dai database di sistema sono impossibili nell'istanza secondaria, a meno che gli oggetti non vengano creati manualmente nel database secondario.
tempdb
- Le dimensioni massime del database di
tempdb
sistema non possono essere superiori a 24 GB per core in un livello per utilizzo generico. Le dimensioni massimetempdb
in un livello Business Critical sono limitate dalle dimensioni di archiviazione Istanza gestita di SQL. Le dimensioni del file di logtempdb
sono limitate a 120 GB nel livello Utilizzo generico. Alcune query potrebbero restituire un errore se necessitano di più di 24 GB per core intempdb
o se producono più di 120 GB di dati di log. tempdb
è sempre suddiviso in 12 file di dati: 1 primario, dettomaster
anche file di dati, e 11 file di dati non primari. La struttura del file non può essere modificata e non è possibile aggiungere nuovi file atempdb
.- I metadati tempDB ottimizzati per la memoria, una nuova funzionalità di database in memoria di SQL Server 2019, non sono supportati.
- Gli oggetti creati nel
model
database non possono essere creati automaticamente dopotempdb
un riavvio o un failover perchétempdb
non ottiene ilmodel
relativo elenco di oggetti iniziale dal database. È necessario creare oggetti manualmentetempdb
dopo ogni riavvio o failover.
msdb
Gli schemi seguenti nel database di msdb
sistema in Istanza gestita di SQL devono essere di proprietà dei rispettivi ruoli predefiniti:
- Ruoli generali
- TargetServersRole
- Ruoli predefiniti del database
- SQLAgentUserRole
- SQLAgentReaderRole
- SQLAgentOperatorRole
- Ruoli di DatabaseMail:
- DatabaseMailUserRole
- Ruoli di Integration Services:
- db_ssisadmin
- db_ssisltduser
- db_ssisoperator
Importante
La modifica dei nomi dei ruoli predefiniti, dei nomi degli schemi e dei proprietari dello schema da parte dei clienti influirà sul normale funzionamento del servizio. Tutte le modifiche apportate a questi elementi verranno ripristinate ai valori predefiniti non appena rilevate o al più tardi al successivo aggiornamento del servizio per garantire il normale funzionamento del servizio.
Log degli errori
Istanza gestita di SQL inserisce informazioni dettagliate nei log degli errori. Esistono molti eventi di sistema interni registrati nel log degli errori. Usare una procedura personalizzata per la lettura dei log degli errori che filtra alcune voci non pertinenti. Per altre informazioni, vedere Istanza gestita di SQL - sp_readmierrorlog o estensione Istanza gestita di SQL (anteprima) per Azure Data Studio.
La modifica del numero di log degli errori conservati non è supportata.
Contenuto correlato
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per