Visualizzazione e modifica delle impostazioni di sicurezza della replica

Si applica a:SQL ServerIstanza gestita di SQL di Azure

Questo argomento descrive come visualizzare e modificare le impostazioni di protezione della replica in SQL Server tramite SQL Server Management Studio, Transact-SQL o Replication Management Objects (RMO). È ad esempio possibile modificare la connessione dell'agente di lettura log al server di pubblicazione passando dall'autenticazione di SQL Server all'autenticazione integrata di Windows oppure potrebbe essere necessario modificare le credenziali utilizzate per eseguire un processo di agente al momento della modifica della password dell'account di Windows. Per informazioni sulle autorizzazioni richieste per ogni agente, vedere Modello di sicurezza dell'agente di replica.

Contenuto dell'articolo

Prima di iniziare

Limitazioni e restrizioni

  • Le stored procedure utilizzate dipenderanno dal tipo di agente e dal tipo di connessione al server.

  • Le classi e le proprietà RMO utilizzate dipendono dal tipo di agente e dal tipo di connessione al server.

Sicurezza

Per motivi di sicurezza, i valori effettivi delle password vengono mascherati nei set di risultati restituiti dalle stored procedure di replica.

Autorizzazioni

Utilizzo di SQL Server Management Studio

Visualizzare e modificare le impostazioni di sicurezza nelle seguenti finestre di dialogo:

  1. La finestra di dialogo Aggiorna password di replica, disponibile nella cartella Replica di SQL Server Management Studio. Se modifichi la password di un account SQL Server o Windows su un server di una topologia di replica, utilizza questa finestra di dialogo anziché aggiornare la password per ogni agente che utilizza l'account. Se gli agenti di più server utilizzano lo stesso account, è necessario connettersi a ogni server e modificare la password. La password viene aggiornata in tutte le posizioni in cui viene utilizzata per la replica ma non viene aggiornata in altre posizioni, come i server collegati.

  2. La pagina Sicurezza agente della finestra di dialogo Proprietà pubblicazione - <Pubblicazione>. Per ulteriori informazioni sull'accesso a questa finestra di dialogo, vedere View and Modify Publication Properties.

  3. La finestra di dialogo Proprietà sottoscrizione - <Sottoscrizione>. Per ulteriori informazioni sull'accesso a questa finestra di dialogo, vedere View and Modify Push Subscription Properties e View and Modify Pull Subscription Properties.

  4. Le finestre di dialogo Proprietà server di distribuzione - <ServerDistribuzione> e Proprietà database di distribuzione - <Database>. Per ulteriori informazioni sull'accesso a queste finestre di dialogo, vedere View and Modify Distributor and Publisher Properties.

  5. La finestra di dialogo Proprietà server di pubblicazione - <ServerPubblicazione>. Per ulteriori informazioni sull'accesso a questa finestra di dialogo, View and Modify Distributor and Publisher Properties.

Per modificare la password di un account utilizzato da uno o più agenti

  1. Se l'account è di SQL Server, nella finestra di dialogo verrà modificata anche la password per tale account. Se l'account è di Windows, modificare innanzitutto la password in Windows. Per ulteriori informazioni, vedere la documentazione di Windows.

    Nota

    Dopo aver modificato una password per la replica è necessario arrestare e riavviare ogni agente che utilizza la password prima che la modifica abbia effetto per tale agente.

  2. Connettiti al server in SQL Server Management Studio e quindi espandi il nodo server.

  3. Fare clic con il pulsante destro del mouse sulla cartella Replica e quindi scegliere Aggiorna password replica.

  4. Nella finestra di dialogo Aggiorna password replica specificare l'account e la nuova password.

  5. Seleziona OK.

Per modificare le impostazioni di sicurezza per l'agente snapshot

  1. Nella pagina Sicurezza agente della finestra di dialogo Proprietà pubblicazione - <Pubblicazione>, fai clic sul pulsante Impostazioni di protezione accanto alla casella di testo Agente snapshot.

  2. Nella finestra di dialogo Sicurezza agente snapshot specificare l'account con il quale eseguire l'agente:

    • Immettere un nuovo account di Windows nella casella di testo Account processo .

    • Immettere una nuova password complessa nelle caselle di testo Password e Conferma password .

  3. Specificare il contesto in cui l'agente deve connettersi dal server di distribuzione al server di pubblicazione. Se si seleziona Tramite l'account di accesso di SQL Server seguente, è anche necessario specificare l'account di accesso:

    • Immettere un account di accesso nella casella di testo Account di accesso

    • Immettere una nuova password complessa nelle caselle di testo Password e Conferma password .

    Nota

    Se il server di pubblicazione è Oracle, il contesto di connessione viene specificato nella finestra di dialogo Proprietà server di distribuzione - <Distributore>. Per la procedura di modifica del contesto, vedere di seguito.

  4. Seleziona OK.

Per modificare le impostazioni di sicurezza per l'agente di lettura log

  1. Nella pagina Sicurezza agente della finestra di dialogo Proprietà server di pubblicazione - <Pubblicazione> fai clic sul pulsante Impostazioni sicurezza accanto alla casella di testo Agente di lettura log.

  2. Nella finestra di dialogo Sicurezza agente di lettura log specificare l'account con il quale eseguire l'agente:

    • Immettere un nuovo account di Windows nella casella di testo Account processo

    • Immettere una nuova password complessa nelle caselle di testo Password e Conferma password .

  3. Specificare il contesto in cui l'agente deve connettersi dal server di distribuzione al server di pubblicazione. Se si seleziona Tramite l'account di accesso di SQL Server seguente, è anche necessario specificare l'account di accesso:

    • Immettere un account di accesso nella casella di testo Account di accesso

    • Immettere una nuova password complessa nelle caselle di testo Password e Conferma password .

    Nota

    Se il server di pubblicazione è Oracle, il contesto di connessione viene specificato nella finestra di dialogo Proprietà server di distribuzione - <Distributore>. Modificare il contesto utilizzando la procedura descritta di seguito.

  4. Seleziona OK.

    Nota

    A ogni database pubblicato è associato un agente di lettura log. La modifica delle impostazioni di sicurezza per l'agente di una pubblicazione influisce sulle impostazioni di tutte le pubblicazioni del database di pubblicazione.

Per modificare il contesto in cui l'agente snapshot e l'agente di lettura log di un'applicazione Oracle stabiliscono connessioni con il server di pubblicazione

  1. Nella pagina Server di pubblicazione della finestra di dialogo Proprietà server di distribuzione - <Distributore>, fai clic sul pulsante delle proprietà (...) accanto a un server di pubblicazione.

  2. Nella sezione Connessione agente al server di pubblicazione specificare l'account di accesso e la password utilizzati con lo schema utente di amministrazione della replica configurato. Per altre informazioni, vedere Configurare un server di pubblicazione Oracle.

  3. Seleziona OK.

Per modificare le impostazioni di sicurezza dell'agente di distribuzione per una sottoscrizione push

  1. Nella finestra di dialogo Proprietà sottoscrizione - <Sottoscrizione> del server di pubblicazione è possibile apportare le modifiche seguenti:

    • Per modificare l'account utilizzato per eseguire l'agente di distribuzione e stabilire connessioni con il server di distribuzione, fare clic sulla riga Account processo agente e quindi sul pulsante delle proprietà () nella riga. Specificare un account e una password nella finestra di dialogo Sicurezza agente di distribuzione .

    • Per modificare il contesto nel quale l'agente di distribuzione esegue la connessione al Sottoscrittore, fare clic sulla riga Connessione al Sottoscrittore e quindi sul pulsante delle proprietà () nella riga. Specificare il contesto nella finestra di dialogo Immissione delle informazioni per la connessione .

      Se si utilizzano sottoscrizioni ad aggiornamento in coda, anche l'agente di lettura coda utilizzerà il contesto specificato per le connessioni al Sottoscrittore.

  2. Seleziona OK.

Per modificare le impostazioni di sicurezza dell'agente di distribuzione per una sottoscrizione pull

  1. Nella finestra di dialogo Proprietà sottoscrizione - <Sottoscrizione> del Sottoscrittore è possibile apportare le modifiche seguenti:

    • Per modificare l'account utilizzato per eseguire l'agente di distribuzione e stabilire connessioni con il Sottoscrittore, fare clic sulla riga Account processo agente e quindi sul pulsante delle proprietà () nella riga. Specificare un account e una password nella finestra di dialogo Sicurezza agente di distribuzione .

      Se si utilizzano sottoscrizioni ad aggiornamento in coda, anche l'agente di lettura coda utilizzerà il contesto specificato per le connessioni al Sottoscrittore.

    • Per modificare il contesto nel quale l'agente di distribuzione esegue la connessione al server di distribuzione, fare clic sulla riga Connessione server di distribuzione e quindi sul pulsante delle proprietà () nella riga. Specificare il contesto nella finestra di dialogo Immissione delle informazioni per la connessione .

  2. Seleziona OK.

Per modificare le impostazioni di sicurezza dell'agente di merge per una sottoscrizione push

  1. Nella finestra di dialogo Proprietà sottoscrizione - <Sottoscrizione> del server di pubblicazione è possibile apportare le modifiche seguenti:

    • Per modificare l'account utilizzato per eseguire l'agente di merge e stabilire connessioni con il server di pubblicazione e il server di distribuzione, fare clic sulla riga Account processo agente e quindi sul pulsante delle proprietà () nella riga. Specificare un account e una password nella finestra di dialogo Sicurezza agente di merge .

    • Per modificare il contesto nel quale l'agente di merge esegue la connessione al Sottoscrittore, fare clic sulla riga Connessione al Sottoscrittore e quindi sul pulsante delle proprietà () nella riga. Specificare il contesto nella finestra di dialogo Immissione delle informazioni per la connessione .

  2. Seleziona OK.

Per modificare le impostazioni di sicurezza dell'agente di merge per una sottoscrizione pull

  1. Nella finestra di dialogo Proprietà sottoscrizione - <Sottoscrizione> del Sottoscrittore è possibile apportare le modifiche seguenti:

    • Per modificare l'account utilizzato per eseguire l'agente di merge e stabilire connessioni con il Sottoscrittore, fare clic sulla riga Account processo agente e quindi sul pulsante delle proprietà () nella riga. Specificare un account e una password nella finestra di dialogo Sicurezza agente di merge .

    • Per modificare il contesto nel quale l'agente di merge esegue la connessione al server di pubblicazione e al server di distribuzione, fare clic sulla riga Connessione server di pubblicazione e quindi sul pulsante delle proprietà () nella riga. Specificare il contesto nella finestra di dialogo Immissione delle informazioni per la connessione .

  2. Seleziona OK.

Per modificare l'account per l'esecuzione dell'agente di lettura coda

  1. Nella pagina Generale della finestra di dialogo Proprietà server di distribuzione - <Distributore> fare clic sul pulsante delle proprietà () accanto al database di distribuzione.

  2. Nella finestra di dialogo Proprietà database di distribuzione - <Database> fare clic sul pulsante Impostazioni di protezione accanto alla casella di testo Account processo agente.

  3. Nella finestra di dialogo Sicurezza agente di lettura coda specificare l'account utilizzato per eseguire l'agente e stabilire connessioni con il server di distribuzione:

    • Immettere un nuovo account di Windows nella casella di testo Account processo

    • Immettere una nuova password complessa nelle caselle di testo Password e Conferma password .

  4. Seleziona OK.

    Nota

    A ogni database di distribuzione è associato un agente di lettura coda. La modifica delle impostazioni di sicurezza dell'agente influisce sulle impostazioni di tutte le pubblicazioni presenti in tutti i server di pubblicazione che utilizzano questo database di distribuzione.

Per modificare il contesto in cui l'agente di lettura coda stabilisce connessioni con il server di pubblicazione

  1. Nella pagina Server di pubblicazione della finestra di dialogo Proprietà server di distribuzione - <Distributore>, fai clic sul pulsante delle proprietà (...) accanto al server di pubblicazione.

  2. Nella sezione Connessione agente al server di pubblicazione specificare il valore Rappresenta l'account del processo dell'agente o Autenticazione di SQL Server per l'opzione Modalità di connessione dell'agente . Se si specifica Autenticazione di SQL Server, immettere anche i valori per Account di accesso e Password.

  3. Seleziona OK.

    Nota

    A ogni database di distribuzione è associato un agente di lettura coda. La modifica delle impostazioni di sicurezza dell'agente influisce sulle impostazioni di tutte le pubblicazioni presenti in tutti i server di pubblicazione che utilizzano questo database di distribuzione.

Per modificare il contesto in cui l'agente di lettura coda stabilisce connessioni con il Sottoscrittore

  • L'agente di lettura coda utilizza lo stesso contesto di connessione dell'agente di distribuzione per la sottoscrizione. Per ulteriori informazioni, vedere le procedure descritte prima per l'agente di distribuzione.

Per modificare le impostazioni di sicurezza per una sottoscrizione pull ad aggiornamento immediato

  1. Nella finestra di dialogo Proprietà sottoscrizione - <Sottoscrizione> del Sottoscrittore, fai clic sulla riga Connessione server di pubblicazione e quindi scegli il pulsante delle proprietà () nella riga.

  2. Nella finestra di dialogo Immissione delle informazioni per la connessione selezionare una delle seguenti opzioni:

    • Usa account di accesso di un server collegato o remoto. Selezionare questa opzione se è stato definito un server remoto o un server collegato tra il Sottoscrittore e il server di pubblicazione tramite sp_addserver (Transact-SQL), sp_addlinkedserver (Transact-SQL), SQL Server Management Studio o un altro metodo.

    • Usa autenticazione di SQL Server con l'account e la password seguenti. Selezionare questa opzione se non è stato definito un server remoto o un server collegato tra il Sottoscrittore e il server di pubblicazione. Durante il processo di replica verrà automaticamente creato un server collegato. È necessario che l'account specificato esista già nel server di pubblicazione.

  3. Seleziona OK.

Nota

Questa procedura consente di modificare il metodo utilizzato con i trigger di replica per eseguire la connessione dal Sottoscrittore al server di pubblicazione quando vengono apportate modifiche nel Sottoscrittore. È anche possibile modificare le impostazioni associate all'agente di distribuzione per una sottoscrizione ad aggiornamento immediato. Per ulteriori informazioni, vedere le procedure descritte in precedenza in questo argomento.

Questa procedura è valida solo per le sottoscrizioni pull. Per le sottoscrizioni push, usa la stored procedure sp_link_publication (Transact-SQL)..

Per modificare la password per la connessione amministrativa dal server di pubblicazione al database di distribuzione

  1. Nella pagina Server di pubblicazione della finestra di dialogo Proprietà server di distribuzione - <Distributore>, immetti una password complessa nelle caselle di testo Password e Conferma password.

  2. Seleziona OK.

  3. Nella pagina Generale della finestra di dialogo Proprietà server di pubblicazione - <Server di pubblicazione>, immetti una password complessa nelle caselle di testo Passworde Conferma password.

  4. Seleziona OK.

Utilizzo di Transact-SQL

Importante

In tutte le procedure descritte di seguito, quando possibile, richiedere agli utenti di immettere le credenziali di sicurezza in fase di esecuzione. Se si archiviano le credenziali in un file di script, è necessario proteggere il file per impedire l'accesso non autorizzato.

Per modificare tutte le istanze di una password archiviate in un server di replica

  1. Nel database master in un server della topologia di replica eseguire sp_changereplicationserverpasswords. Specifica l'account Windows di Microsoft o l'account di accesso di Microsoft SQL Server per cui modificare la password per @login e la nuova password per l'account o l'accesso a @password. In questo modo viene modificata ogni istanza della password utilizzata da tutti gli agenti nel server quando si connettono ad altri server della topologia.

    Nota

    Per modificare l'account di accesso e la password solo per una connessione a un determinato server della topologia, ad esempio il server di distribuzione o il Sottoscrittore, specificare il nome di tale server per @server.

  2. Ripetere il passaggio 1 in ogni server della topologia di replica in cui è necessario aggiornare la password.

    Nota

    Dopo aver modificato una password per la replica è necessario arrestare e riavviare ogni agente che utilizza la password prima che la modifica abbia effetto per tale agente.

Per modificare le impostazioni di sicurezza per l'agente snapshot

  1. Nel server di pubblicazione eseguire sp_helppublication_snapshot, specificando @publication. Verranno restituite le impostazioni di sicurezza correnti per l'agente snapshot.

  2. Nel server di pubblicazione eseguire sp_changepublication_snapshot, specificando @publication e una o più delle seguenti impostazioni di sicurezza da modificare:

    • Per modificare l'account di Windows usato per eseguire l'agente o solo la password per tale account, specificare @job_login e @job_password.

    • Per modificare la modalità di sicurezza usata per le connessioni al server di pubblicazione, specificare il valore 1 o 0 per @publisher_security_mode.

    • Se modifichi la modalità protetta usata per le connessioni al server di pubblicazione da 1 a 0 oppure se modifichi un accesso di SQL server usato per questa connessione, specifica @publisher_login e @publisher_password.

    Importante

    Quando si configura un server di pubblicazione con un server di distribuzione remoto, i valori specificati per tutti i parametri, inclusi job_login e job_password, vengono inviati al server di distribuzione come testo normale. È consigliabile crittografare la connessione tra il server di pubblicazione e il server di distribuzione remoto prima di eseguire questa stored procedure. Per altre informazioni, vedere Abilitare le connessioni crittografate al motore di database (Gestione configurazione SQL Server).

Per modificare le impostazioni di sicurezza per l'agente di lettura log

  1. Nel server di pubblicazione eseguire sp_helplogreader_agent, specificando @publisher. Verranno restituite le impostazioni di sicurezza correnti per l'agente di lettura log.

  2. Nel server di pubblicazione eseguire sp_changelogreader_agent, specificando @publication e una o più delle seguenti impostazioni di sicurezza da modificare:

    • Per modificare l'account di Windows usato per eseguire l'agente o solo la password per tale account, specificare @job_login e @job_password.

    • Per modificare la modalità di sicurezza usata per le connessioni al server di pubblicazione, specificare il valore 1 o 0 per @publisher_security_mode.

    • Se modifichi la modalità protetta usata per le connessioni al server di pubblicazione da 1 a 0 oppure se modifichi un accesso di SQL server usato per questa connessione, specifica @publisher_login e @publisher_password.

    Nota

    Dopo la modifica dell'account di accesso o della password di un agente, è necessario arrestare e riavviare l'agente per rendere effettiva la modifica.

    Importante

    Quando si configura un server di pubblicazione con un server di distribuzione remoto, i valori specificati per tutti i parametri, inclusi job_login e job_password, vengono inviati al server di distribuzione come testo normale. È consigliabile crittografare la connessione tra il server di pubblicazione e il server di distribuzione remoto prima di eseguire questa stored procedure. Per altre informazioni, vedere Abilitare le connessioni crittografate al motore di database (Gestione configurazione SQL Server).

Per modificare le impostazioni di sicurezza dell'agente di distribuzione per una sottoscrizione push

  1. Nel database di pubblicazione del server di pubblicazione eseguire sp_helpsubscription, specificando @publication e @subscriber. Verranno restituite le proprietà della sottoscrizione, incluse le impostazioni di sicurezza per l'agente di distribuzione eseguito nel server di distribuzione.

  2. Nel database di pubblicazione del server di pubblicazione eseguire sp_changesubscription, specificando @publication, @subscriber, @subscriber_db, un valore all per @article, il nome della proprietà di sicurezza per @property e il nuovo valore della proprietà per @value.

  3. Ripetere il passaggio 2 per ognuna delle seguenti proprietà di sicurezza da modificare:

    • Per modificare l'account di Windows usato per eseguire l'agente o solo la password per tale account, specificare il valore distrib_job_password per @property e una nuova password per @value. Quando si modifica l'account stesso, ripetere il passaggio 2 specificando il valore distrib_job_login per @property e il nuovo account di Windows per @value.

    • Per modificare la modalità di sicurezza usata per la connessione al Sottoscrittore, specificare il valore subscriber_security_mode per @property e il valore 1 (autenticazione integrata di Windows) o 0 (autenticazione di SQL Server) per @value.

    • Quando si imposta l'autenticazione di SQL Server come modalità di sicurezza del Sottoscrittore o se si modificano le informazioni di accesso per l'autenticazione di SQL Server, specificare il valore subscriber_password per @property e la nuova password per @value. Ripetere il passaggio 2, specificando il valore subscriber_login per @property e il nuovo account di accesso per @value.

    Nota

    Dopo la modifica dell'account di accesso o della password di un agente, è necessario arrestare e riavviare l'agente per rendere effettiva la modifica.

    Importante

    Quando si configura un server di pubblicazione con un server di distribuzione remoto, i valori specificati per tutte le proprietà, inclusi distrib_job_login e distrib_job_password, vengono inviati al server di distribuzione come testo normale. È consigliabile crittografare la connessione tra il server di pubblicazione e il server di distribuzione remoto prima di eseguire questa stored procedure. Per altre informazioni, vedere Abilitare le connessioni crittografate al motore di database (Gestione configurazione SQL Server).

Per modificare le impostazioni di sicurezza dell'agente di distribuzione per una sottoscrizione pull

  1. Nel Sottoscrittore eseguire sp_helppullsubscription, specificando @publication. Verranno restituite le proprietà della sottoscrizione, incluse le impostazioni di sicurezza per l'agente di distribuzione eseguito nel Sottoscrittore.

  2. Nel database di sottoscrizione del Sottoscrittore eseguire sp_change_subscription_properties, specificando @publisher, @publisher_db, @publication, il nome della proprietà di sicurezza per @property e il nuovo valore della proprietà per @value.

  3. Ripetere il passaggio 2 per ognuna delle seguenti proprietà di sicurezza da modificare:

    • Per modificare l'account di Windows usato per eseguire l'agente o solo la password per tale account, specificare il valore distrib_job_password per @property e una nuova password per @value. Quando si modifica l'account stesso, ripetere il passaggio 2 specificando il valore distrib_job_login per @property e il nuovo account di Windows per @value.

    • Per modificare la modalità di sicurezza usata per la connessione al server di distribuzione, specificare il valore distributor_security_mode per @property e il valore 1 (autenticazione integrata di Windows) o 0 (autenticazione di SQL Server) per @value.

    • Quando si imposta l'autenticazione di SQL Server come modalità di sicurezza del server di distribuzione o se si modificano le informazioni di accesso per l'autenticazione di SQL Server, specificare il valore distributor_password per @property e la nuova password per @value. Ripetere il passaggio 2, specificando il valore distributor_login per @property e il nuovo account di accesso per @value.

    Nota

    Dopo la modifica dell'account di accesso o della password di un agente, è necessario arrestare e riavviare l'agente per rendere effettiva la modifica.

Per modificare le impostazioni di sicurezza dell'agente di merge per una sottoscrizione push

  1. Nel database di pubblicazione del server di pubblicazione eseguire sp_helpmergesubscription, specificando @publication, @subscriber, e @subscriber_db. Verranno restituite le proprietà della sottoscrizione, incluse le impostazioni di sicurezza per l'agente di merge eseguito nel server di distribuzione.

  2. Nel database di pubblicazione del server di pubblicazione eseguire sp_changemergesubscription, specificando @publication, @subscriber, @subscriber_db, il nome della proprietà di sicurezza per @property e il nuovo valore della proprietà per @value.

  3. Ripetere il passaggio 2 per ognuna delle seguenti proprietà di sicurezza da modificare:

    • Per modificare l'account di Windows usato per eseguire l'agente o solo la password per tale account, specificare il valore merge_job_password per @property e una nuova password per @value. Quando si modifica l'account stesso, ripetere il passaggio 2 specificando il valore merge_job_login per @property e il nuovo account di Windows per @value.

    • Per modificare la modalità di sicurezza usata per la connessione al Sottoscrittore, specificare il valore subscriber_security_mode per @property e il valore 1 (autenticazione integrata di Windows) o 0 (autenticazione di SQL Server) per @value.

    • Quando si imposta l'autenticazione di SQL Server come modalità di sicurezza del Sottoscrittore o se si modificano le informazioni di accesso per l'autenticazione di SQL Server, specificare il valore subscriber_password per @property e la nuova password per @value. Ripetere il passaggio 2, specificando il valore subscriber_login per @property e il nuovo account di accesso per @value.

    • Per modificare la modalità di sicurezza usata per le connessioni al server di pubblicazione, specificare il valore publisher_security_mode per @property e il valore 1 (autenticazione integrata di Windows) o 0 (autenticazione di SQL Server) per @value.

    • Quando si imposta l'autenticazione di SQL Server come modalità di sicurezza del server di pubblicazione o se si modificano le informazioni di accesso per l'autenticazione di SQL Server, specificare il valore publisher_password per @property e la nuova password per @value. Ripetere il passaggio 2, specificando il valore publisher_login per @property e il nuovo account di accesso per @value.

    Nota

    Dopo la modifica dell'account di accesso o della password di un agente, è necessario arrestare e riavviare l'agente per rendere effettiva la modifica.

    Importante

    Quando si configura un server di pubblicazione con un server di distribuzione remoto, i valori specificati per tutte le proprietà, inclusi merge_job_login e distrib_job_password, vengono inviati al server di distribuzione come testo normale. È consigliabile crittografare la connessione tra il server di pubblicazione e il server di distribuzione remoto prima di eseguire questa stored procedure. Per altre informazioni, vedere Abilitare le connessioni crittografate al motore di database (Gestione configurazione SQL Server).

Per modificare le impostazioni di sicurezza dell'agente di merge per una sottoscrizione pull

  1. Nel Sottoscrittore eseguire sp_helpmergepullsubscription, specificando @publication. Verranno restituite le proprietà della sottoscrizione, incluse le impostazioni di sicurezza per l'agente di merge eseguito nel Sottoscrittore.

  2. Nel database di sottoscrizione del Sottoscrittore eseguire sp_change_subscription_properties, specificando @publisher, @publisher_db, @publication, il nome della proprietà di sicurezza per @property e il nuovo valore della proprietà per @value.

  3. Ripetere il passaggio 2 per ognuna delle seguenti proprietà di sicurezza da modificare:

    • Per modificare l'account di Windows usato per eseguire l'agente o solo la password per tale account, specificare il valore merge_job_password per @property e una nuova password per @value. Quando si modifica l'account stesso, ripetere il passaggio 2 specificando il valore merge_job_login per @property e il nuovo account di Windows per @value.

    • Per modificare la modalità di sicurezza usata per la connessione al server di distribuzione, specificare il valore distributor_security_mode per @property e il valore 1 (autenticazione integrata di Windows) o 0 (autenticazione di SQL Server) per @value.

    • Quando si imposta l'autenticazione di SQL Server come modalità di sicurezza del server di distribuzione o se si modificano le informazioni di accesso per l'autenticazione di SQL Server, specificare il valore distributor_password per @property e la nuova password per @value. Ripetere il passaggio 2, specificando il valore distributor_login per @property e il nuovo account di accesso per @value.

    • Per modificare la modalità di sicurezza usata per le connessioni al server di pubblicazione, specificare il valore publisher_security_mode per @property e il valore 1 (autenticazione integrata di Windows) o 0 (autenticazione di SQL Server) per @value.

    • Quando si imposta l'autenticazione di SQL Server come modalità di sicurezza del server di pubblicazione o se si modificano le informazioni di accesso per l'autenticazione di SQL Server, specificare il valore publisher_password per @property e la nuova password per @value. Ripetere il passaggio 2, specificando il valore publisher_login per @property e il nuovo account di accesso per @value.

    Nota

    Dopo la modifica dell'account di accesso o della password di un agente, è necessario arrestare e riavviare l'agente per rendere effettiva la modifica.

Per modificare impostazioni di sicurezza per l'agente snapshot e generare uno snapshot filtrato per un Sottoscrittore

  1. Nel server di pubblicazione eseguire sp_helpdynamicsnapshot_job, specificando @publication. Nel set dei risultati Si noti il valore job_name per la partizione del Sottoscrittore da modificare.

  2. Nel server di pubblicazione eseguire sp_changedynamicsnapshot_job, specificando @publication, il valore ottenuto nel passaggio 1 per dynamic_snapshot_jobname e una nuova password per @job_password o il nome di accesso e la password per l'account di Windows usato per eseguire l'agente per @job_login e @job_password.

    Importante

    Quando si configura un server di pubblicazione con un server di distribuzione remoto, i valori specificati per tutti i parametri, inclusi job_login e job_password, vengono inviati al server di distribuzione come testo normale. È consigliabile crittografare la connessione tra il server di pubblicazione e il server di distribuzione remoto prima di eseguire questa stored procedure. Per altre informazioni, vedere Abilitare le connessioni crittografate al motore di database (Gestione configurazione SQL Server).

Per modificare le impostazioni di sicurezza per l'agente di lettura coda

  1. Nel server di distribuzione eseguire sp_helpqreader_agent. Verrà restituito l'account di Windows corrente utilizzato per eseguire l'agente di lettura coda.

    • Nel server di distribuzione eseguire sp_changeqreader_agent, specificando le impostazioni dell'account di Windows per @job_login e @job_password.

    Nota

    Dopo la modifica dell'account di accesso o della password di un agente, è necessario arrestare e riavviare l'agente per rendere effettiva la modifica. A ogni database di distribuzione è associato un agente di lettura coda. La modifica delle impostazioni di sicurezza dell'agente influisce sulle impostazioni di tutte le pubblicazioni presenti in tutti i server di pubblicazione che utilizzano questo database di distribuzione.

  2. L'agente di lettura coda esegue le connessioni al Sottoscrittore utilizzando lo stesso contesto di connessione dell'agente di distribuzione per la sottoscrizione.

Per modificare la modalità di sicurezza utilizzata da un Sottoscrittore ad aggiornamento immediato per la connessione al server di pubblicazione

  1. Nel database di sottoscrizione del Sottoscrittore eseguire sp_link_publication. Specificare @publisher, @publication, il nome del database di pubblicazione per @publisher_dbe uno dei valori seguenti per @security_mode:

    • 0 per utilizzare l'autenticazione di SQL Server quando si eseguono aggiornamenti nel server di pubblicazione. Questa opzione richiede di specificare un account di accesso valido nel server di pubblicazione per @login e @password.

    • 1 per utilizzare il contesto di sicurezza dell'utente che esegue le modifiche nel Sottoscrittore quando ci si connette al server di pubblicazione. Per informazioni sulle restrizioni correlate a questa modalità di sicurezza, vedere sp_link_publication .

    • 2 per usare un account di accesso esistente e definito dall'utente per il server collegato, creato con sp_addlinkedserver (Transact-SQL).

Per modificare la password per un server di distribuzione remoto

  1. Nel database di distribuzione del server di distribuzione eseguire sp_changedistributor_password, specificando la nuova password per questo account di accesso per @password.

    Importante

    Non modificare direttamente la password di distributor_admin .

  2. In ogni server di pubblicazione in cui viene usato questo server di distribuzione remoto eseguire sp_changedistributor_password, specificando la password indicata nel passaggio 1 per @password.

Utilizzo di RMO (Replication Management Objects)

Importante

Se possibile, richiedere agli utenti di immettere le credenziali di sicurezza in fase di esecuzione. Se devi archiviare le credenziali, utilizza i servizi di crittografia offerti da Microsoft Windows .NET Framework.

Per modificare tutte le istanze di una password archiviate in un server di replica

  1. Creare una connessione al server di replica tramite la classe ServerConnection .

  2. Creare un'istanza della classe ReplicationServer utilizzando la connessione creata nel passaggio 1.

  3. Chiamare il metodo ChangeReplicationServerPasswords . Specificare i seguenti parametri:

    • security_mode : valore ReplicationSecurityMode che specifica il tipo di autenticazione per cui vengono modificate tutte le istanze della password.

    • login : account di accesso per cui vengono modificate tutte le istanze della password.

    • password : nuovo valore della password.

      Importante

      Se possibile, richiedere agli utenti di immettere le credenziali di sicurezza in fase di esecuzione. Se è necessario archiviare le credenziali, utilizzare i servizi di crittografia offerti da Windows .NET Framework.

      Nota

      Solo un membro del ruolo predefinito del server sysadmin può chiamare questo metodo.

  4. Ripetere i passaggi da 1 a 3 in ogni server della topologia di replica in cui è necessario aggiornare la password.

Per modificare le impostazioni di sicurezza dell'agente di distribuzione per una sottoscrizione push in una pubblicazione transazionale

  1. Creare una connessione al server di pubblicazione tramite la classe ServerConnection .

  2. Creare un'istanza della classe TransSubscription.

  3. Impostare le proprietà PublicationName, DatabaseName, SubscriberNamee SubscriptionDBName per la sottoscrizione, quindi impostare la connessione creata nel passaggio 1 per la proprietà ConnectionContext .

  4. Chiamare il metodo LoadProperties per recuperare le proprietà dell'oggetto. Se questo metodo restituisce false, le proprietà della sottoscrizione sono state definite in modo non corretto nel passaggio 3 oppure la sottoscrizione non esiste.

  5. Impostare una o più delle seguenti proprietà di sicurezza sull'istanza di TransSubscription:

    • Per modificare le credenziali per l'account di Windows utilizzato per eseguire l'agente, impostare i campi Login e Password di SynchronizationAgentProcessSecurity.

    • Per specificare l'autenticazione integrata di Windows come tipo di autenticazione utilizzato dall'agente quando si connette al Sottoscrittore, impostare il campo WindowsAuthentication della proprietà SubscriberSecurity su true.

    • Per specificare l'autenticazione di SQL Server come tipo di autenticazione utilizzato dall'agente quando si connette al Sottoscrittore, impostare il campo WindowsAuthentication della proprietà SubscriberSecurity su falsee specificare le credenziali di accesso al Sottoscrittore per i campi SqlStandardLogin e SqlStandardPassword .

      Nota

      La connessione dell'agente al server di distribuzione viene sempre eseguita utilizzando le credenziali di Windows specificate da SynchronizationAgentProcessSecurity. Questo account viene utilizzato anche per stabilire connessioni remote tramite l'autenticazione di Windows.

  6. (Facoltativo) Se si specifica un valore true per CachePropertyChanges, chiamare il metodo CommitPropertyChanges per eseguire il commit delle modifiche nel server. Se si specifica un valore false per CachePropertyChanges (impostazione predefinita), le modifiche vengono inviate immediatamente al server.

Per modificare le impostazioni di sicurezza dell'agente di distribuzione per una sottoscrizione pull in una pubblicazione transazionale

  1. Creare una connessione al Sottoscrittore tramite la classe ServerConnection .

  2. Creare un'istanza della classe TransPullSubscription.

  3. Impostare le proprietà PublicationName, DatabaseName, PublisherNamee PublicationDBName per la sottoscrizione, quindi impostare la connessione creata nel passaggio 1 per la proprietà ConnectionContext .

  4. Chiamare il metodo LoadProperties per recuperare le proprietà dell'oggetto. Se questo metodo restituisce false, le proprietà della sottoscrizione sono state definite in modo non corretto nel passaggio 3 oppure la sottoscrizione non esiste.

  5. Impostare una o più delle seguenti proprietà di sicurezza sull'istanza di TransPullSubscription:

    • Per modificare le credenziali per l'account di Windows utilizzato per eseguire l'agente, impostare i campi Login e Password di SynchronizationAgentProcessSecurity.

    • Per specificare l'autenticazione integrata di Windows come tipo di autenticazione utilizzato dall'agente quando si connette al server di distribuzione, impostare il campo WindowsAuthentication della proprietà DistributorSecurity su true.

    • Per specificare l'autenticazione di SQL Server come tipo di autenticazione utilizzato dall'agente quando si connette al server di distribuzione, impostare il campo WindowsAuthentication della proprietà DistributorSecurity su falsee specificare le credenziali di accesso al server di distribuzione per i campi SqlStandardLogin e SqlStandardPassword .

      Nota

      La connessione dell'agente al Sottoscrittore viene sempre eseguita utilizzando le credenziali di Windows specificate da SynchronizationAgentProcessSecurity. Questo account viene utilizzato anche per stabilire connessioni remote tramite l'autenticazione di Windows.

  6. (Facoltativo) Se si specifica un valore true per CachePropertyChanges, chiamare il metodo CommitPropertyChanges per eseguire il commit delle modifiche nel server. Se si specifica un valore false per CachePropertyChanges (impostazione predefinita), le modifiche vengono inviate immediatamente al server.

Per modificare le impostazioni di sicurezza dell'agente di merge per una sottoscrizione pull in una pubblicazione di tipo merge

  1. Creare una connessione al Sottoscrittore tramite la classe ServerConnection .

  2. Creare un'istanza della classe MergePullSubscription.

  3. Impostare le proprietà PublicationName, DatabaseName, PublisherNamee PublicationDBName per la sottoscrizione, quindi impostare la connessione creata nel passaggio 1 per la proprietà ConnectionContext .

  4. Chiamare il metodo LoadProperties per recuperare le proprietà dell'oggetto. Se questo metodo restituisce false, le proprietà della sottoscrizione sono state definite in modo non corretto nel passaggio 3 oppure la sottoscrizione non esiste.

  5. Impostare una o più delle seguenti proprietà di sicurezza sull'istanza di MergePullSubscription:

    • Per modificare le credenziali per l'account di Windows utilizzato per eseguire l'agente, impostare i campi Login e Password di SynchronizationAgentProcessSecurity.

    • Per specificare l'autenticazione integrata di Windows come tipo di autenticazione utilizzato dall'agente quando si connette al server di distribuzione, impostare il campo WindowsAuthentication della proprietà DistributorSecurity su true.

    • Per specificare l'autenticazione di SQL Server come tipo di autenticazione utilizzato dall'agente quando si connette al server di distribuzione, impostare il campo WindowsAuthentication della proprietà DistributorSecurity su falsee specificare le credenziali di accesso al server di distribuzione per i campi SqlStandardLogin e SqlStandardPassword .

    • Per specificare l'autenticazione integrata di Windows come tipo di autenticazione utilizzato dall'agente quando si connette al server di pubblicazione, impostare il campo WindowsAuthentication della proprietà PublisherSecurity su true.

    • Per specificare l'autenticazione di SQL Server come tipo di autenticazione utilizzato dall'agente quando si connette al server di pubblicazione, impostare il campo WindowsAuthentication della proprietà PublisherSecurity su falsee specificare le credenziali di accesso al server di pubblicazione per i campi SqlStandardLogin e SqlStandardPassword .

      Nota

      La connessione dell'agente al Sottoscrittore viene sempre eseguita utilizzando le credenziali di Windows specificate da SynchronizationAgentProcessSecurity. Questo account viene utilizzato anche per stabilire connessioni remote tramite l'autenticazione di Windows.

  6. (Facoltativo) Se si specifica un valore true per CachePropertyChanges, chiamare il metodo CommitPropertyChanges per eseguire il commit delle modifiche nel server. Se si specifica un valore false per CachePropertyChanges (impostazione predefinita), le modifiche vengono inviate immediatamente al server.

Per modificare le impostazioni di sicurezza dell'agente di merge per una sottoscrizione push in una pubblicazione di tipo merge

  1. Creare una connessione al server di pubblicazione tramite la classe ServerConnection .

  2. Creare un'istanza della classe MergeSubscription.

  3. Impostare le proprietà PublicationName, DatabaseName, SubscriberNamee SubscriptionDBName per la sottoscrizione, quindi impostare la connessione creata nel passaggio 1 per la proprietà ConnectionContext .

  4. Chiamare il metodo LoadProperties per recuperare le proprietà dell'oggetto. Se questo metodo restituisce false, le proprietà della sottoscrizione sono state definite in modo non corretto nel passaggio 3 oppure la sottoscrizione non esiste.

  5. Impostare una o più delle seguenti proprietà di sicurezza sull'istanza di MergeSubscription:

    • Per modificare le credenziali per l'account di Windows utilizzato per eseguire l'agente, impostare i campi Login e Password di SynchronizationAgentProcessSecurity.

    • Per specificare l'autenticazione integrata di Windows come tipo di autenticazione utilizzato dall'agente quando si connette al Sottoscrittore, impostare il campo WindowsAuthentication della proprietà SubscriberSecurity su true.

    • Per specificare l'autenticazione di SQL Server come tipo di autenticazione utilizzato dall'agente quando si connette al Sottoscrittore, impostare il campo WindowsAuthentication della proprietà SubscriberSecurity su falsee specificare le credenziali di accesso al Sottoscrittore per i campi SqlStandardLogin e SqlStandardPassword .

    • Per specificare l'autenticazione integrata di Windows come tipo di autenticazione utilizzato dall'agente quando si connette al server di pubblicazione, impostare il campo WindowsAuthentication della proprietà PublisherSecurity su true.

    • Per specificare l'autenticazione di SQL Server come tipo di autenticazione utilizzato dall'agente quando si connette al server di pubblicazione, impostare il campo WindowsAuthentication della proprietà PublisherSecurity su falsee specificare le credenziali di accesso al server di pubblicazione per i campi SqlStandardLogin e SqlStandardPassword .

      Nota

      La connessione dell'agente al server di distribuzione viene sempre eseguita utilizzando le credenziali di Windows specificate da SynchronizationAgentProcessSecurity. Questo account viene utilizzato anche per stabilire connessioni remote tramite l'autenticazione di Windows.

  6. (Facoltativo) Se si specifica un valore true per CachePropertyChanges, chiamare il metodo CommitPropertyChanges per eseguire il commit delle modifiche nel server. Se si specifica un valore false per CachePropertyChanges (impostazione predefinita), le modifiche vengono inviate immediatamente al server.

Per modificare le informazioni di accesso utilizzate da un Sottoscrittore ad aggiornamento immediato quando si connette al server di pubblicazione transazionale

  1. Creare una connessione al Sottoscrittore tramite la classe ServerConnection .

  2. Creare un'istanza della classe ReplicationDatabase per il database di sottoscrizione. Specificare Name e ServerConnection dal passaggio 1 per ConnectionContext.

  3. Chiamare il metodo LoadProperties per recuperare le proprietà dell'oggetto. Se questo metodo restituisce false, le proprietà del database sono state definite in modo non corretto nel passaggio 2 oppure il database di sottoscrizione non esiste.

  4. Chiamare il metodo LinkPublicationForUpdateableSubscription , passando i parametri seguenti:

    • Publisher : nome del server di pubblicazione.

    • PublisherDB : nome del database di pubblicazione.

    • Publication : nome della pubblicazione sottoscritta dal Sottoscrittore ad aggiornamento immediato.

    • Distributor : nome del server di distribuzione.

    • PublisherSecurity - A PublisherConnectionSecurityContext che specifica il tipo di modalità di sicurezza utilizzato dal Sottoscrittore ad aggiornamento immediato quando si connette al server di pubblicazione e le credenziali di accesso per la connessione.

Esempio (RMO)

In questo esempio viene controllato il valore di accesso fornito e vengono modificate tutte le password per l'account di accesso di Windows o di SQL Server specificato archiviate dalla replica nel server.

// Set the Distributor and distribution database names.
string serverName = publisherInstance;

ReplicationServer server;

// Create a connection to the Distributor using Windows Authentication.
ServerConnection conn = new ServerConnection(serverName);

try
{
    // Open the connection. 
    conn.Connect();

    server = new ReplicationServer(conn);

    // Load server properties, if it exists.
    if (server.LoadProperties())
    {
        string[] slash = new string[1];
        slash[0] = @"\";

        // If the login is in the form string\string, assume we are 
        // changing the password for a Windows login.
        if (login.Split(slash, StringSplitOptions.None).Length == 2)
        {
            //Change the password for the all connections that use
            // the Windows login. 
            server.ChangeReplicationServerPasswords(
                    ReplicationSecurityMode.Integrated, login, password);
        }
        else
        {
            // Change the password for the all connections that use
            // the SQL Server login. 
            server.ChangeReplicationServerPasswords(
                    ReplicationSecurityMode.SqlStandard, login, password);
        }
    }
    else
    {
        throw new ApplicationException(String.Format(
            "Properties for {0} could not be retrieved.", publisherInstance));
    }
}
catch (Exception ex)
{
    // Implement the appropriate error handling here. 
    throw new ApplicationException(String.Format(
        "An error occurred when changing agent login " +
        " credentials on {0}.",serverName), ex);
}
finally
{
    conn.Disconnect();
}
' Set the Distributor and distribution database names.
Dim serverName As String = publisherInstance

Dim server As ReplicationServer

' Create a connection to the Distributor using Windows Authentication.
Dim conn As ServerConnection = New ServerConnection(serverName)

Try
    ' Open the connection. 
    conn.Connect()

    server = New ReplicationServer(conn)

    ' Load server properties, if it exists.
    If server.LoadProperties() Then

        ' If the login is in the form string\string, assume we are 
        ' changing the password for a Windows login.
        If login.Split("\").Length = 2 Then

            ' Change the password for the all connections that use
            ' the Windows login. 
            server.ChangeReplicationServerPasswords( _
            ReplicationSecurityMode.Integrated, login, password)
        Else

            ' Change the password for the all connections that use
            ' the SQL Server login. 
            server.ChangeReplicationServerPasswords( _
            ReplicationSecurityMode.SqlStandard, login, password)
        End If
    Else
        Throw New ApplicationException(String.Format( _
         "Properties for {0} could not be retrieved.", publisherInstance))
    End If
Catch ex As Exception
    ' Implement the appropriate error handling here. 
    Throw New ApplicationException(String.Format( _
     "An error occurred when changing agent login " + _
     " credentials on {0}.", serverName), ex)
Finally
    conn.Disconnect()
End Try

Completamento: dopo avere modificato le impostazioni di sicurezza della replica

Dopo la modifica dell'account di accesso o della password di un agente, è necessario arrestare e riavviare l'agente per rendere effettiva la modifica.

Vedi anche

Replication Management Objects Concepts
Aggiornare gli script di replica (programmazione Transact-SQL della replica)
Controllo di identità e accesso (replica)
Modello di sicurezza dell'agente di replica
Procedure consigliate per la sicurezza della replica
Visualizzare e modificare le impostazioni di sicurezza della replica
Replication System Stored Procedures Concepts