Gestire i metadati quando si rende disponibile un database in un altro serverManage Metadata When Making a Database Available on Another Server

Le informazioni contenute in questo argomento sono relative alle situazioni seguenti:This topic is relevant in the following situations:

  • Configurazione delle repliche di disponibilità di un gruppo di disponibilità Gruppi di disponibilità Always OnAlways On availability groups .Configuring the availability replicas of an Gruppi di disponibilità Always OnAlways On availability groups availability group.

  • Impostazione del mirroring per un database.Setting up database mirroring for a database.

  • Preparazione per il cambio di ruoli tra server primario e server secondario in una configurazione per il log shipping.When preparing to change roles between primary and secondary servers in a log shipping configuration.

  • Ripristino di un database in un'altra istanza del server.Restoring a database to another server instance.

  • Collegamento di una copia di un database in un'altra istanza del server.Attaching a copy of a database on another server instance.

    Alcune applicazioni dipendono da informazioni, entità e/o oggetti esterni all'ambito di un database in modalità a utente singolo.Some applications depend on information, entities, and/or objects that are outside of the scope of a single user database. Un'applicazione include in genere dipendenze nei database master e msdb , nonché nel database utente.Typically, an application has dependencies on the master and msdb databases, and also on the user database. Qualsiasi elemento archiviato all'esterno di un database utente necessario per il corretto funzionamento di tale database deve essere reso disponibile nell'istanza del server di destinazione.Anything stored outside of a user database that is required for the correct functioning of that database must be made available on the destination server instance. Ad esempio, gli account di accesso per un'applicazione vengono archiviati come metadati nel database master e devono essere creati nuovamente nel server di destinazione.For example, the logins for an application are stored as metadata in the master database, and they must be re-created on the destination server. Se il piano di manutenzione di un'applicazione o un database dipende da processi di SQL ServerSQL Server Agent i cui metadati sono archiviati nel database msdb , è necessario creare nuovamente tali processi nell'istanza del server di destinazione.If an application or database maintenance plan depends on SQL ServerSQL Server Agent jobs, whose metadata is stored in the msdb database, you must re-create those jobs on the destination server instance. Analogamente, i metadati per un trigger a livello di server vengono archiviati nel database master.Similarly, the metadata for a server-level trigger is stored in master.

    Quando il database per un'applicazione viene spostato in un'altra istanza del server, è necessario ricreare tutti i metadati delle entità e degli oggetti dipendenti nei database master e msdb dell'istanza del server di destinazione.When you move the database for an application to another server instance, you must re-create all the metadata of the dependant entities and objects in master and msdb on the destination server instance. Ad esempio, se un'applicazione del database utilizza trigger a livello di server, non è sufficiente collegare o ripristinare il database nel nuovo sistema.For example, if a database application uses server-level triggers, just attaching or restoring the database on the new system is not enough. Il database non funzionerà come previsto a meno che non si ricreino manualmente i metadati per tali trigger nel database master .The database will not work as expected unless you manually re-create the metadata for those triggers in the master database.

Informazioni, entità e oggetti archiviati all'esterno dei database utente Information, Entities, and Objects That Are Stored Outside of User Databases

Nel resto dell'argomento vengono riepilogate le potenziali problematiche che possono influenzare un database reso disponibile in un'altra istanza del server.The remainder of this topic summarizes the potential issues that might affect a database that is being made available on another server instance. Potrebbe essere necessario ricreare uno o più tipi di informazioni, entità o oggetti indicati nell'elenco seguente.You might have to re-create one or more of the types of information, entities, or objects listed in the following list. Per visualizzare un riepilogo, fare clic sul collegamento per l'elemento.To see a summary, click the link for the item.

Server Configuration Settings Server Configuration Settings

SQL Server 2005SQL Server 2005 e versioni successive i servizi e le funzionalità chiave vengono installati e avviati in modo selettivo. and later versions selectively install and starts key services and features. In questo modo, è possibile ridurre la superficie di attacco del sistema.This helps reduce the attackable surface area of a system. Nella configurazione predefinita di nuove installazioni, molte funzionalità non sono abilitate.In the default configuration of new installations, many features are not enabled. Se il database si basa su qualsiasi funzionalità o servizio disabilitato per impostazione predefinita, tale funzionalità o servizio dovrà essere abilitato nell'istanza del server di destinazione.If the database relies on any service or feature that is off by default, this service or feature must be enabled on the destination server instance.

Per altre informazioni su queste impostazioni e sulla relativa abilitazione o disabilitazione, vedere Opzioni di configurazione del server (SQL Server).For more information about these settings and enabling or disabling them, see Server Configuration Options (SQL Server).

Credenziali Credentials

Una credenziale è un record contenente le informazioni di autenticazione necessarie per connettersi a una risorsa all'esterno di SQL ServerSQL Server.A credential is a record that contains the authentication information that is required to connect to a resource outside SQL ServerSQL Server. La maggior parte delle credenziali è costituita da un account di accesso e da una password di Windows.Most credentials consist of a Windows login and password.

Per altre informazioni su questa funzionalità, vedere Credenziali (Motore di database).For more information about this feature, see Credentials (Database Engine).

NOTA: gli account proxy di SQL ServerSQL Server Agent usano credenziali.NOTE: SQL ServerSQL Server Agent Proxy accounts use credentials. Per conoscere l'ID delle credenziali di un account proxy, utilizzare la tabella di sistema sysproxies .To learn the credential ID of a proxy account, use the sysproxies system table.

Cross-Database Queries Cross-Database Queries

Il valore predefinito delle opzioni DB_CHAINING e TRUSTWORTHY è OFF.The DB_CHAINING and TRUSTWORTHY database options are OFF by default. Se una di queste opzioni è impostata su ON per il database originale, può essere necessario abilitarla nel database nell'istanza del server di destinazione.If either of these is set to ON for the original database, you may have to enable them on the database on the destination server instance. Per altre informazioni, vedere ALTER DATABASE (Transact-SQL).For more information, see ALTER DATABASE (Transact-SQL).

Le operazioni di collegamento e scollegamento consentono la disabilitazione del concatenamento della proprietà tra database per il database.Attach-and-detach operations disable cross-database ownership chaining for the database. Per informazioni su come abilitare il concatenamento, vedere Opzione di configurazione del server cross db ownership chaining.For information about how to enable chaining, see cross db ownership chaining Server Configuration Option.

Per altre informazioni, vedere Impostare un database mirror per l'uso della proprietà Trustworthy (Transact-SQL)For more information, see also Set Up a Mirror Database to Use the Trustworthy Property (Transact-SQL)

Database Ownership Database Ownership

Quando un database viene ripristinato in un altro computer, l'account di accesso di SQL ServerSQL Server o l'utente di Windows che ha iniziato l'operazione di ripristino diventa automaticamente il proprietario del nuovo database.When a database is restored on another computer, the SQL ServerSQL Server login or Windows user who initiated the restore operation becomes the owner of the new database automatically. Al momento del ripristino, l'amministratore di sistema o il nuovo proprietario del database possono modificare il proprietario del database.When the database is restored, the system administrator or the new database owner can change database ownership.

Query distribuite e server collegati Distributed Queries and Linked Servers

Le query distribuite e i server collegati sono supportati per le applicazioni OLE DB.Distributed queries and linked servers are supported for OLE DB applications. Le query distribuite consentono di accedere ai dati da più origini di dati eterogenee nello stesso computer o in computer diversi.Distributed queries access data from multiple heterogeneous data sources on either the same or different computers. Una configurazione con server collegati consente a SQL ServerSQL Server di eseguire comandi su origini dei dati OLE DB in server remoti.A linked server configuration enables SQL ServerSQL Server to execute commands against OLE DB data sources on remote servers. Per altre informazioni su queste funzionalità, vedere Server collegati (Motore di database).For more information about these features, see Linked Servers (Database Engine).

Encrypted Data Encrypted Data

Se nel database che si sta rendendo disponibile in un'altra istanza del server sono contenuti dati crittografati e se la chiave master del database è protetta dalla chiave master del servizio nel server originale, potrebbe essere necessario ricreare la crittografia della chiave master del servizio.If the database you are making available on another server instance contains encrypted data and if the database master key is protected by the service master key on the original server, it might be necessary to re-create the service master key encryption. La chiave master del database è una chiave simmetrica che viene utilizzata per proteggere le chiavi private di certificati e chiavi asimmetriche in un database crittografato.The database master key is a symmetric key that is used to protect the private keys of certificates and asymmetric keys in an encrypted database. Al momento della creazione, la chiave master del database viene crittografata con l'algoritmo Triple DES e una password specificata dall'utente.When created, the database master key is encrypted by using the Triple DES algorithm and a user-supplied password.

Per abilitare la decrittografia automatica della chiave master del database in un'istanza del server, viene crittografata una copia di questa chiave utilizzando la chiave master del servizio.To enable the automatic decryption of the database master key on a server instance, a copy of this key is encrypted by using the service master key. Questa copia crittografata viene archiviata sia nel database che nel database master.This encrypted copy is stored in both the database and in master. La copia archiviata nel database master viene generalmente aggiornata in modo automatico in seguito a ogni modifica della chiave master.Typically, the copy stored in master is silently updated whenever the master key is changed. SQL ServerSQL Server si tenta innanzitutto di decrittografare la chiave master del database con la chiave master del servizio dell'istanza. first tries to decrypt the database master key with the service master key of the instance. Se il tentativo non riesce, in SQL ServerSQL Server si esegue una ricerca nell'archivio delle credenziali per individuare le credenziali di chiave master con lo stesso GUID del database per cui è richiesta la chiave master.If that decryption fails, SQL ServerSQL Server searches the credential store for master key credentials that have the same family GUID as the database for which it requires the master key. SQL ServerSQL Server si tenta quindi di decrittografare la chiave master del database con ogni credenziale corrispondente fino a quando non si riesce a completare l'operazione o non sono disponibili altre credenziali da provare. then tries to decrypt the database master key with each matching credential until the decryption succeeds or there are no more credentials. Per aprire una chiave master non crittografata con la chiave master del servizio, è necessario utilizzare l'istruzione OPEN MASTER KEY e una password.A master key that is not encrypted by the service master key must be opened by using the OPEN MASTER KEY statement and a password.

Quando viene copiato, ripristinato o collegato un database crittografato in una nuova istanza di SQL ServerSQL Server, una copia della chiave master del database crittografata dalla chiave master del servizio non viene archiviata nel database master nell'istanza del server di destinazione.When an encrypted database is copied, restored, or attached to a new instance of SQL ServerSQL Server, a copy of the database master key encrypted by the service master key is not stored in master on the destination server instance. Nell'istanza del server di destinazione, è necessario aprire la chiave master del database.On the destination server instance, you must open the master key of the database. Per aprire la chiave master, eseguire l'istruzione OPEN MASTER KEY DECRYPTION BY PASSWORD ='password'.To open the master key, execute the following statement: OPEN MASTER KEY DECRYPTION BY PASSWORD ='password'. È quindi consigliabile abilitare la decrittografia automatica della chiave master del database eseguendo l'istruzione ALTER MASTER KEY ADD ENCRYPTION BY SERVICE MASTER KEY.We recommend that you then enable automatic decryption of the database master key by executing the following statement: ALTER MASTER KEY ADD ENCRYPTION BY SERVICE MASTER KEY. L'istruzione ALTER MASTER KEY fornisce all'istanza del server una copia della chiave master del database crittografata con la chiave master del servizio.This ALTER MASTER KEY statement provisions the server instance with a copy of the database master key that is encrypted with the service master key. Per altre informazioni, vedere OPEN MASTER KEY (Transact-SQL) e ALTER MASTER KEY (Transact-SQL).For more information, see OPEN MASTER KEY (Transact-SQL) and ALTER MASTER KEY (Transact-SQL).

Per informazioni sull'abilitazione della decrittografia automatica della chiave master del database di un database mirror, vedere Impostare un database mirror crittografato.For information about how to enable automatic decryption of the database master key of a mirror database, see Set Up an Encrypted Mirror Database.

Per ulteriori informazioni, vedere anche:For more information, see also:

User-defined Error Messages User-defined Error Messages

I messaggi di errore definiti dall'utente sono contenuti nella vista del catalogo sys.messages .User-defined error messages reside in the sys.messages catalog view. Questa vista del catalogo è archiviata nel database master.This catalog view is stored in master. Se un'applicazione del database dipende da messaggi di errore definiti dall'utente e il database è reso disponibile in un'altra istanza del server, usare sp_addmessage per aggiungere tali messaggi definiti dall'utente nell'istanza del server di destinazione.If a database application depends on user-defined error messages and the database is made available on another server instance, use sp_addmessage to add those user-defined messages on the destination server instance.

Event Notifications and Windows Management Instrumentation (WMI) Events (at Server Level) Event Notifications and Windows Management Instrumentation (WMI) Events (at Server Level)

Notifiche degli eventi a livello di serverServer-Level Event Notifications

Le notifiche degli eventi a livello di server sono archiviate nel database msdb.Server-level event notifications are stored in msdb. Se un'applicazione del database si basa su notifiche degli eventi a livello di server, tali notifiche devono pertanto essere ricreate nell'istanza del server di destinazione.Therefore, if a database application relies on a server-level event notifications, that event notification must be re-created on the destination server instance. Per visualizzare le notifiche degli eventi in un'istanza del server, usare la vista del catalogo sys.server_event_notifications .To view the event notifications on a server instance, use the sys.server_event_notifications catalog view. Per altre informazioni, vedere Event Notifications.For more information, see Event Notifications.

Le notifiche degli eventi vengono inoltre recapitate utilizzando Service BrokerService Broker.Additionally, event notifications are delivered by using Service BrokerService Broker. I route per i messaggi in ingresso non sono inclusi nel database che contiene un servizio.Routes for incoming messages are not included in the database that contains a service. I route espliciti sono invece archiviati nel database msdb.Instead, explicit routes are stored in msdb. Se il servizio consente di usare una route esplicita nel database msdb per eseguire il routing dei messaggi in arrivo al servizio, quando si collega un database in un'istanza diversa è necessario ricreare questa route.If your service uses an explicit route in the msdb database to route incoming messages to the service, when you attach a database in a different instance, you must re-create this route.

Eventi di Strumentazione gestione Windows (WMI)Windows Management Instrumentation (WMI) Events

Il provider WMI per eventi del server consente di utilizzare il servizio Strumentazione gestione Windows (WMI) per monitorare eventi in SQL ServerSQL Server.The WMI Provider for Server Events lets you use the Windows Management Instrumentation (WMI) to monitor events in SQL ServerSQL Server. Qualsiasi applicazione che si basi su eventi a livello di server esposti tramite il provider WMI utilizzato da un database deve essere definita nel computer dell'istanza del server di destinazione.Any application that relies on server-level events exposed through the WMI provider on which a database relies must be defined the computer of the destination server instance. Il provider di eventi WMI crea le notifiche degli eventi con un servizio di destinazione definito nel database msdb.WMI Event provider creates event notifications with a target service that is defined in msdb.

NOTA: per altre informazioni, vedere Concetti relativi al provider WMI per eventi del server.NOTE: For more information, see WMI Provider for Server Events Concepts.

Per creare un avviso di WMI utilizzando SQL Server Management StudioTo create a WMI alert using SQL Server Management Studio

Funzionamento delle notifiche degli eventi per un database con mirroringHow Event Notifications Work for a Mirrored Database

Il recapito tra database delle notifiche degli eventi che richiede un database con mirroring è remoto, per definizione, in quanto per il database con mirroring è possibile eseguire il failover.Cross-database delivery of event notifications that involves a mirrored database is remote, by definition, because the mirrored database can fail over. Service BrokerService Broker offre uno speciale supporto per i database con mirroring, sotto forma di route con mirroring. provides special support for mirrored databases, in the form of mirrored routes. Un route con mirroring dispone di due indirizzi, uno per l'istanza del server principale e uno per l'istanza del server mirror.A mirrored route has two addresses: one for the principal server instance and one for the mirror server instance.

Impostando i route con mirroring, si rende il routing di Service BrokerService Broker compatibile con il mirroring del database.By setting up mirrored routes, you make Service BrokerService Broker routing aware of database mirroring. I route con mirroring consentono a Service BrokerService Broker di reindirizzare in modo trasparente le conversazioni all'istanza del server principale corrente.The mirrored routes enable Service BrokerService Broker to transparently redirect conversations to the current principal server instance. Prendere, ad esempio, in considerazione un servizio, Service_A, ospitato da un database con mirroring, Database_A.For example, consider a service, Service_A, which is hosted by a mirrored database, Database_A. Si supponga che sia necessario un altro servizio, Service_B ospitato da Database_B, che comunichi con Service_A.Assume that you need another service, Service_B, which is hosted by Database_B, to have a dialog with Service_A. Affinché tale comunicazione sia possibile, Database_B deve contenere una route con mirroring per Service_A.For this dialog to be possible, Database_B must contain a mirrored route for Service_A. Inoltre, Database_A deve contenere una route di trasporto TCP senza mirroring a Service_B che, diversamente da una route locale, rimane valido dopo il failover.In addition, Database_A must contain a nonmirrored TCP transport route to Service_B, which, unlike a local route, remains valid after failover. Questi route consentono il ritorno degli ACK dopo un failover.These routes enable ACKs to come back after a failover. Dato che il servizio del mittente è sempre denominato nello stesso modo, il route deve specificare l'istanza del broker.Because the service of the sender is always named in the same manner, the route must specify the broker instance.

Il requisito per i route con mirroring si applica indipendentemente dal fatto che il servizio nel database con mirroring sia il servizio Initiator o il servizio di destinazione:The requirement for mirrored routes applies for regardless of whether the service in the mirrored database is the initiator service or the target service:

  • Se il servizio di destinazione si trova nel database con mirroring, il servizio Initiator deve disporre di un route con mirroring verso la destinazione.If target service is in the mirrored database, the initiator service must have a mirrored route back to the target. Tuttavia, la destinazione può disporre di un route regolare verso l'Initiator.However, the target can have a regular route back to initiator.

  • Se il servizio Initiator si trova nel database con mirroring, il servizio di destinazione deve disporre di un route con mirroring verso l'Initiator per recapitare acknowledgement e risposte.If initiator service is in the mirrored database, the target service must have a mirrored route back to initiator to deliver acknowledgements and replies. Tuttavia, l'Initiator può disporre di una route regolare verso la destinazione.However, the initiator can have a regular route to the target.

Extended Stored Procedures Extended Stored Procedures

IMPORTANTEIMPORTANT! Questa funzionalità verrà rimossa a partire da una delle prossime versioni di Microsoft SQL Server.This feature will be removed in a future version of Microsoft SQL Server. Evitare di usare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata.Avoid using this feature in new development work, and plan to modify applications that currently use this feature. Usare invece la funzionalità Integrazione CLR . Use CLR Integration instead.

Le stored procedure estese sono programmate utilizzando l'API per stored procedure estese di SQL ServerSQL Server .Extended stored procedures are programmed by using the SQL ServerSQL Server Extended Stored Procedure API. Un membro del ruolo predefinito del server sysadmin può registrare una stored procedure estesa con un'istanza di SQL ServerSQL Server e concedere agli utenti l'autorizzazione a eseguire la procedura.A member of the sysadmin fixed server role can register an extended stored procedure with an instance of SQL ServerSQL Server and grant permission to users to execute the procedure. Le stored procedure estese possono essere aggiunte soltanto al database master .Extended stored procedures can be added only to the master database.

Le stored procedure estese vengono eseguite direttamente nello spazio degli indirizzi di un'istanza di SQL ServerSQL Servere possono produrre perdite di memoria o altri problemi che riducono le prestazioni e l'affidabilità del server.Extended stored procedures run directly in the address space of an instance of SQL ServerSQL Server, and they may produce memory leaks or other problems that reduce the performance and reliability of the server. È consigliabile valutare l'opportunità di archiviare le stored procedure estese in un'istanza di SQL ServerSQL Server distinta dall'istanza contenente i dati di riferimento.You should consider storing extended stored procedures in an instance of SQL ServerSQL Server that is separate from the instance that contains the referenced data. Valutare inoltre l'opportunità di utilizzare query distribuite per accedere al database.You should also consider using distributed queries to access the database.

IMPORTANTEIMPORTANT!! Prima di aggiungere stored procedure estese al server e concedere le autorizzazioni EXECUTE ad altri utenti, è necessario che l'amministratore di sistema esamini con attenzione ogni stored procedure estesa per verificare che non contenga codice dannoso o malware.Before adding extended stored procedures to the server and granting EXECUTE permissions to other users, the system administrator should thoroughly review each extended stored procedure to make sure that it does not contain harmful or malicious code.

Per altre informazioni, vedere GRANT - autorizzazioni per oggetti (Transact-SQL), DENY - autorizzazioni per oggetti (Transact-SQL) e REVOKE - autorizzazioni per oggetti (Transact-SQL).For more information, see GRANT Object Permissions (Transact-SQL), DENY Object Permissions (Transact-SQL), and REVOKE Object Permissions (Transact-SQL).

Full-Text Engine for SQL Server Properties Full-Text Engine for SQL Server Properties

Le proprietà per il motore di ricerca full-text vengono impostate da sp_fulltext_service.Properties are set on the Full-Text Engine by sp_fulltext_service. Verificare che l'istanza del server di destinazione disponga delle impostazioni necessarie per queste proprietà.Make sure that the destination server instance has the required settings for these properties. Per altre informazioni su queste proprietà, vedere FULLTEXTSERVICEPROPERTY (Transact-SQL).For more information about these properties, see FULLTEXTSERVICEPROPERTY (Transact-SQL).

Se le versioni del componente word breaker e stemmer o del componente filtri di ricerca full-text sono diverse nelle istanze del server originale e del server di destinazione, l'indice e le query full-text possono comportarsi in modo diverso.Additionally, if the word breakers and stemmers component or full-text search filters component have different versions on the original and destination server instances, full-text index and queries may behave differently. Anche il thesaurus viene archiviato in file specifici dell'istanza.Also, the thesaurus is stored in instance-specific files. È necessario trasferire una copia di questi file in un percorso equivalente nell'istanza del server di destinazione oppure ricrearli nella nuova istanza.You must either transfer a copy of those files to an equivalent location on the destination server instance or re-create them on new instance.

NOTA: quando si collega un database di SQL Server 2005SQL Server 2005 contenente file di catalogo full-text in un'istanza del server di SQL Server 2017SQL Server 2017 , i file di catalogo vengono collegati dal percorso precedente insieme agli altri file del database, come in SQL Server 2005SQL Server 2005.NOTE: When you attach a SQL Server 2005SQL Server 2005 database that contains full-text catalog files onto a SQL Server 2017SQL Server 2017 server instance, the catalog files are attached from their previous location along with the other database files, the same as in SQL Server 2005SQL Server 2005. Per altre informazioni, vedere Aggiornamento della ricerca full-text.For more information, see Upgrade Full-Text Search.

Per ulteriori informazioni, vedere anche:For more information, see also:

Processi Jobs

Se il database si basa su processi di SQL ServerSQL Server Agent, sarà necessario ricrearli nell'istanza del server di destinazione.If the database relies on SQL ServerSQL Server Agent jobs, you will have to re-create them on the destination server instance. I processi dipendono dai relativi ambienti.Jobs depend on their environments. Se si pianifica di ricreare un processo esistente nell'istanza del server di destinazione, può essere necessario modificare l'istanza del server di destinazione in modo che corrisponda all'ambiente di tale processo nell'istanza del server originale.If you plan to re-create an existing job on the destination server instance, the destination server instance might have to be modified to match the environment of that job on the original server instance. I fattori ambientali seguenti sono significativi:The following environmental factors are significant:

  • Account di accesso utilizzato dal processoThe login used by the job

    Per creare o eseguire i processi di SQL ServerSQL Server Agent, è innanzitutto necessario aggiungere tutti gli account di accesso di SQL ServerSQL Server richiesti dal processo all'istanza del server di destinazione.To create or execute SQL ServerSQL Server Agent jobs, you must first add any SQL ServerSQL Server logins required by the job to the destination server instance. Per altre informazioni, vedere Configurare un utente per la creazione e la gestione di processi di SQL Server Agent.For more information, see Configure a User to Create and Manage SQL Server Agent Jobs.

  • SQL ServerSQL Server Agent Agent service startup account

    L'account di avvio del servizio definisce l'account di MicrosoftMicrosoft Windows in cui viene eseguito SQL ServerSQL Server Agent, nonché le relative autorizzazioni di rete.The service startup account defines the MicrosoftMicrosoft Windows account in which SQL ServerSQL Server Agent runs and its network permissions. SQL ServerSQL Server Agent viene eseguito con un account utente specificato. Agent runs as a specified user account. Il contesto del servizio SQL Server Agent influisce sulle impostazioni per il processo e per il relativo ambiente di esecuzione.The context of the Agent service affects the settings for the job and its run environment. È necessario che l'account abbia accesso alle risorse, ad esempio alle condivisioni di rete, richieste dal processo.The account must have access to the resources, such as network shares, required by the job. Per informazioni su come selezionare e modificare l'account di avvio del servizio, vedere Selezionare un account per il servizio SQL Server Agent.For information about how to select and modify the service startup account, see Select an Account for the SQL Server Agent Service.

    Per un corretto funzionamento, è necessario che l'account di avvio del servizio sia configurato con dominio, file system e autorizzazioni per il Registro di sistema appropriati.To operate correctly, the service startup account must be configured to have the correct domain, file system, and registry permissions. Inoltre, un processo potrebbe richiedere una risorsa di rete condivisa che deve essere configurata per l'account del servizio.Also, a job might require a shared network resource that must be configured for the service account. Per informazioni, vedere Configurare account di servizio e autorizzazioni di Windows.For information, see Configure Windows Service Accounts and Permissions.

  • SQL ServerSQL Server Agent, associato a un'istanza specifica di SQL ServerSQL Server, dispone di un proprio hive del Registro di sistema e i relativi processi presentano in genere dipendenze da una o più delle impostazioni in questo hive del Registro di sistema. Agent service, which is associated with a specific instance of SQL ServerSQL Server, has its own registry hive, and its jobs typically have dependencies on one or more of the settings in this registry hive. Per funzionare come previsto, un processo richiede queste impostazioni del Registro di sistema.To behave as intended, a job requires those registry settings. Se si utilizza uno script per ricreare un processo in un altro servizio SQL ServerSQL Server Agent, è possibile che nel Registro di sistema relativo non siano disponibili le impostazioni corrette per tale processo.If you use a script to re-create a job in another SQL ServerSQL Server Agent service, its registry might not have the correct settings for that job. Affinché i processi ricreati funzionino correttamente in un'istanza del server di destinazione, è necessario che i servizi SQL ServerSQL Server Agent originale e di destinazione presentino le stesse impostazioni del Registro di sistema.For re-created jobs to behave correctly on a destination server instance, the original and destination SQL ServerSQL Server Agent services should have the same registry settings.

    Attenzione

    La modifica delle impostazioni del Registro di sistema nel servizio SQL ServerSQL Server Agent di destinazione per gestire un processo ricreato può essere problematica se le impostazioni correnti sono necessarie per altri processi.Changing registry settings on the destination SQL ServerSQL Server Agent service to handle a re-created job could be problematic if the current settings are required by other jobs. Se, inoltre, il Registro di sistema viene modificato in modo non appropriato, il sistema potrebbe venire gravemente danneggiato.Furthermore, incorrectly editing the registry can severely damage your system. Prima di modificare il Registro di sistema, è consigliabile eseguire il backup di tutti i dati importanti disponibili nel computer.Before you make changes to the registry, we recommend that you back up any valued data on the computer.

  • SQL ServerSQL Server Agent Agent Proxies

    Un proxy di SQL ServerSQL Server Agent definisce il contesto di sicurezza per il passaggio di processo specificato.A SQL ServerSQL Server Agent proxy defines the security context for a specified job step. Affinché un processo venga eseguito nell'istanza del server di destinazione, è necessario ricreare in tale istanza tutti i proxy di cui necessita il processo.For a job to run on the destination server instance, all the proxies it requires must be manually re-created on that instance. Per altre informazioni, vedere Creare un proxy di SQL Server Agent e Risolvere i problemi relativi a processi multiserver che usano proxy.For more information, see Create a SQL Server Agent Proxy and Troubleshoot Multiserver Jobs That Use Proxies.

    Per ulteriori informazioni, vedere anche:For more information, see also:

  • Implementazione di processiImplement Jobs

  • Gestione di account di accesso e di processi dopo un cambio di ruolo (SQL Server) (per il mirroring del database)Management of Logins and Jobs After Role Switching (SQL Server) (for database mirroring)

  • Configurare account di servizio e autorizzazioni di Windows (quando si installa un'istanza di SQL ServerSQL Server)Configure Windows Service Accounts and Permissions (when you install an instance of SQL ServerSQL Server)

  • Configurare SQL Server Agent (quando si installa un'istanza di SQL ServerSQL Server)Configure SQL Server Agent (when you install an instance of SQL ServerSQL Server)

  • Implementazione della sicurezza di SQL Server AgentImplement SQL Server Agent Security

    Per visualizzare processi esistenti e relative proprietàTo view existing jobs and their properties

  • Monitoraggio delle attività del processoMonitor Job Activity

  • sp_help_job (Transact-SQL)sp_help_job (Transact-SQL)

  • Visualizzare informazioni sui passaggi di processoView Job Step Information

  • dbo.sysjobs (Transact-SQL)dbo.sysjobs (Transact-SQL)

    Per creare un processoTo create a job

  • Creazione di un processoCreate a Job

  • Creazione di un processoCreate a Job

Procedure consigliate per l'utilizzo di uno script per ricreare un processoBest Practices for Using a Script to Re-create a Job

Per iniziare, è consigliabile creare lo script di un processo semplice, ricreare il processo nell'altro servizio SQL ServerSQL Server Agent ed eseguire il processo per verificare se funziona come previsto.We recommend that you start by scripting a simple job, re-creating the job on the other SQL ServerSQL Server Agent service, and running the job to see whether it works as intended. In questo modo, è possibile identificare eventuali incompatibilità e tentare di risolverle.This will let you to identify incompatibilities and try to resolve them. Se un processo per cui è stato creato uno script non funziona come previsto nel nuovo ambiente, è consigliabile creare un processo equivalente che funzioni correttamente in tale ambiente.If a scripted job does not work as intended in its new environment, we recommend that you create an equivalent job that works correctly in that environment.

Account di accesso Logins

L'accesso a un'istanza di SQL ServerSQL Server richiede un account di accesso di SQL ServerSQL Server valido.Logging into an instance of SQL ServerSQL Server requires a valid SQL ServerSQL Server login. Questo account di accesso viene utilizzato nel processo di autenticazione che verifica se l'entità può connettersi all'istanza di SQL ServerSQL Server.This login is used in the authentication process that verifies whether the principal can connect to the instance of SQL ServerSQL Server. Un utente del database il cui account di accesso di SQL ServerSQL Server corrispondente non è definito o è definito in modo errato in un'istanza del server non potrà accedere a tale istanza.A database user for which the corresponding SQL ServerSQL Server login is undefined or is incorrectly defined on a server instance cannot log in to the instance. Questo utente viene definito utente orfano del database nell'istanza del server.Such a user is said to be an orphaned user of the database on that server instance. Un utente del database può divenire isolato (orfano) dopo il ripristino, il collegamento o la copia di un database in un'altra istanza di SQL ServerSQL Server.A database user can become orphaned if after a database is restored, attached, or copied to a different instance of SQL ServerSQL Server.

Per generare uno script per tutti gli oggetti nella copia originale del database o per alcuni di essi, è possibile utilizzare Generazione guidata script e, nella finestra di dialogo Selezione opzioni generazione script , impostare l'opzione Script per account di accesso su True.To generate a script for some or all the objects in the original copy of the database, you can use the Generate Scripts Wizard, and in the Choose Script Options dialog box, set the Script Logins option to True.

NOTA: Per informazioni su come configurare gli account di accesso per un database con mirroring, vedere Configurare gli account di accesso per il mirroring del database o i gruppi di disponibilità Always On (SQL Server) e Gestione di account di accesso e di processi dopo un cambio di ruolo (SQL Server).NOTE: For information about how to set up logins for a mirrored database, see Set Up Login Accounts for Database Mirroring or Always On Availability Groups (SQL Server) and Management of Logins and Jobs After Role Switching (SQL Server).

Autorizzazioni Permissions

I tipi seguenti di autorizzazioni possono essere influenzati quando un database viene reso disponibile in un'altra istanza del server.The following types of permissions might be affected when a database is made available on another server instance.

  • Autorizzazioni GRANT, REVOKE o DENY per gli oggetti di sistemaGRANT, REVOKE, or DENY permissions on system objects

  • Autorizzazioni GRANT, REVOKE o DENY nell'istanza del server (autorizzazioni a livello di server)GRANT, REVOKE, or DENY permissions on server instance (server-level permissions)

Autorizzazioni GRANT, REVOKE o DENY per gli oggetti di sistemaGRANT, REVOKE, and DENY Permissions on System Objects

Le autorizzazioni per gli oggetti di sistema, ad esempio stored procedure, stored procedure estese, funzioni e viste, sono archiviate nel database master e devono essere configurate nell'istanza del server di destinazione.Permissions on system objects such as stored procedures, extended stored procedures, functions, and views, are stored in the master database and must be configured on the destination server instance.

Per generare uno script per alcuni o tutti gli oggetti nella copia originale del database è possibile usare la procedura guidata di generazione script e, nella finestra di dialogo Selezione opzioni generazione script impostare l'opzione Script per autorizzazioni a livello oggetto su True.To generate a script for some or all the objects in the original copy of the database, you can use the Generate Scripts Wizard, and in the Choose Script Options dialog box, set the Script Object-Level Permissions option to True.

IMPORTANTEIMPORTANT!! Se si creano script per account di accesso, le password non vengono incluse negli script.If you script logins, the passwords are not scripted. Se sono presenti account di accesso che utilizzano l'autenticazione di SQL ServerSQL Server , è necessario modificare lo script nella destinazione.If you have logins that use SQL ServerSQL Server Authentication, you have to modify the script on the destination.

Gli oggetti di sistema sono visibili nella vista del catalogo sys.system_objects .System objects are visible in the sys.system_objects catalog view. Le autorizzazioni per gli oggetti di sistema sono visibili nella vista del catalogo sys.database_permissions nel database master.The permissions on system objects are visible in the sys.database_permissions catalog view in the master database. Per informazioni su come eseguire query in queste viste del catalogo e su come concedere autorizzazioni per gli oggetti di sistema, vedere GRANT - autorizzazioni per oggetti di sistema (Transact-SQL).For information about querying these catalog views and granting system-object permissions, see GRANT System Object Permissions (Transact-SQL). Per altre informazioni, vedere REVOKE - autorizzazioni per oggetti di sistema (Transact-SQL) e DENY - autorizzazioni per oggetti di sistema (Transact-SQL).For more information, see REVOKE System Object Permissions (Transact-SQL) and DENY System Object Permissions (Transact-SQL).

Autorizzazioni GRANT, REVOKE o DENY per un'istanza del serverGRANT, REVOKE, and DENY Permissions on a Server Instance

Le autorizzazioni nell'ambito del server vengono archiviate nel database master e devono essere configurate nell'istanza del server di destinazione.Permissions at the server scope are stored in the master database and must be configured on the destination server instance. Per informazioni sulle autorizzazioni del server di un'istanza del server, eseguire una query nella vista del catalogo sys.server_permissions. Per informazioni sulle entità del server, eseguire una query nella vista del catalogo sys.server_principals e per informazioni sull'appartenenza ai ruoli del server, eseguire una query nella vista del catalogo sys.server_role_members.For information about the server permissions of a server instance, query the sys.server_permissions catalog view, for information about server principals query the sys.server_principalss catalog view, and for information about membership of server roles query the sys.server_role_members catalog view.

Per altre informazioni, vedere GRANT - autorizzazioni per server(Transact-SQL), REVOKE - autorizzazioni per server (Transact-SQL) e DENY - autorizzazioni per server (Transact-SQL).For more information, see GRANT Server Permissions (Transact-SQL), REVOKE Server Permissions (Transact-SQL), and DENY Server Permissions (Transact-SQL).

Autorizzazioni a livello del server per un certificato o una chiave asimmetricaServer-Level Permissions for a Certificate or Asymmetric Key

Non è possibile concedere autorizzazioni a livello del server direttamente a un certificato o a una chiave asimmetrica.Server-level permissions cannot be granted directly to a certificate or asymmetric key. Le autorizzazioni a livello del server vengono viceversa concesse a un account di accesso con mapping creato esclusivamente per un certificato o una chiave asimmetrica specifica.Instead, server-level permissions are granted to a mapped login that is created exclusively for a specific certificate or asymmetric key. Ogni certificato o chiave asimmetrica che richiede autorizzazioni a livello del server richiede quindi un proprio account di accesso con mapping al certificato o un account di accesso con mapping alla chiave asimmetrica.Therefore, each certificate or asymmetric key that requires server-level permissions, requires its own certificate-mapped login or asymmetric key-mapped login. Per concedere autorizzazioni a livello del server per un certificato o una chiave asimmetrica, concedere le autorizzazioni al relativo account di accesso con mapping.To grant server-level permissions for a certificate or asymmetric key, grant the permissions to its mapped login.

NOTA: un account di accesso con mapping viene usato solo per l'autorizzazione del codice firmato con il certificato o la chiave asimmetrica corrispondente.NOTE: A mapped login is used only for authorization of code signed with the corresponding certificate or asymmetric key. Gli account di accesso con mapping non possono essere utilizzati per l'autenticazione.Mapped logins cannot be used for authentication.

L'account di accesso con mapping e le relative autorizzazioni risiedono nel database master.The mapped login and its permissions both reside in master. Se un certificato o una chiave asimmetrica risiede in un database diverso da masterè necessario ricreare tale certificato o chiave asimmetrica nel database master ed eseguirne il mapping a un account di accesso.If a certificate or asymmetric key resides in a database other than master, you must re-create it in master and map it to a login. Se si sposta, copia o ripristina il database in un'altra istanza del server, è necessario ricreare tale certificato o chiave asimmetrica nel database master dell'istanza del server di destinazione, eseguirne il mapping a un account di accesso e concedere le autorizzazioni a livello del server richieste all'account di accesso.If you move, copy, or restore the database to another server instance, you must re-create its certificate or asymmetric key in the master database of the destination server instance, map to a login, and grant the required server-level permissions to the login.

Per creare un certificato o una chiave asimmetricaTo create a certificate or asymmetric key

Replication Settings Replication Settings

Se si ripristina un backup di un database replicato in un altro server o database, le impostazioni di replica non potranno essere mantenute.If you restore a backup of a replicated database to another server or database, replication settings cannot be preserved. In questo caso, è necessario ricreare tutte le pubblicazioni e le sottoscrizioni dopo il ripristino dei backup.In this case, you must re-create all publications and subscriptions after backups are restored. Per semplificare questo processo, creare script per le impostazioni di replica correnti e per l'abilitazione e la disabilitazione della replica.To make this process easier, create scripts for your current replication settings and, also, for the enabling and disabling of replication. Per ricreare più agevolmente le impostazioni di replica, copiare questi script e modificare i riferimenti al nome del server in base all'istanza del server di destinazione.To help re-create your replication settings, copy these scripts and change the server name references to work for the destination server instance.

Per altre informazioni, vedere Backup e ripristino di database replicati, Mirroring e replica del database (SQL Server) e Log shipping e replica (SQL Server).For more information, see Back Up and Restore Replicated Databases, Database Mirroring and Replication (SQL Server), and Log Shipping and Replication (SQL Server).

Service Broker Applications Service Broker Applications

Insieme al database vengono spostati molti aspetti di un'applicazione di Service BrokerService Broker .Many aspects of a Service BrokerService Broker application move with the database. Tuttavia, alcuni aspetti dell'applicazione dovranno essere ricreati o riconfigurati nella nuova posizione.However, some aspects of the application must be re-created or reconfigured in the new location.

Startup Procedures Startup Procedures

Una procedura di avvio è una stored procedure contrassegnata per l'esecuzione automatica che viene eseguita a ogni avvio di SQL ServerSQL Server .A startup procedure is a stored procedure that is marked for automatic execution and is executed every time SQL ServerSQL Server starts. Se il database dipende da procedure di avvio, è necessario definire tali procedure nell'istanza del server di destinazione e configurarle per l'esecuzione automatica all'avvio.If the database depends on any startup procedures, they must be defined on the destination server instance and be configured to be automatically executed at startup.

Triggers (at Server Level) Triggers (at Server Level)

I trigger DDL attivano stored procedure in risposta a vari eventi DDL (Data Definition Language).DDL triggers fire stored procedures in response to a variety of Data Definition Language (DDL) events. Questi eventi corrispondono principalmente a istruzioni Transact-SQLTransact-SQL che iniziano con le parole chiave CREATE, ALTER e DROP.These events primarily correspond to Transact-SQLTransact-SQL statements that start with the keywords CREATE, ALTER, and DROP. Alcune stored procedure di sistema che eseguono operazioni di tipo DDL possono inoltre attivare trigger DDL.Certain system stored procedures that perform DDL-like operations can also fire DDL triggers.

Per ulteriori informazioni su questa funzionalità, vedere DDL Triggers.For more information about this feature, see DDL Triggers.

Vedere ancheSee Also

Database indipendenti Contained Databases
Copia di database in altri server Copy Databases to Other Servers
Collegamento e scollegamento di un database (SQL Server) Database Detach and Attach (SQL Server)
Eseguire il failover in un database secondario per il log shipping (SQL Server) Fail Over to a Log Shipping Secondary (SQL Server)
Cambio di ruolo durante una sessione di mirroring del database (SQL Server) Role Switching During a Database Mirroring Session (SQL Server)
Impostare un database mirror crittografato Set Up an Encrypted Mirror Database
Gestione configurazione SQL Server SQL Server Configuration Manager
Risolvere i problemi relativi agli utenti isolati (SQL Server)Troubleshoot Orphaned Users (SQL Server)