Share via


Visualizzazione e modifica delle impostazioni di sicurezza della replica

Questo argomento descrive come visualizzare e modificare le impostazioni di sicurezza della replica in SQL Server 2014 usando SQL Server Management Studio, Transact-SQL o Replica 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

Uso di SQL Server Management Studio

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

  1. La finestra di dialogo Aggiorna password replica , disponibile nella cartella Replica di SQL Server Management Studio. Se si modifica la password per un account SQL Server o un account Windows in un server in una topologia di replica, usare questa finestra di dialogo anziché aggiornare la password per ogni agente che usa 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. 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. 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. Proprietà del server di distribuzione - <Proprietà del database di distribuzione> e proprietà del database di distribuzione - <Finestra di dialogo Database>. Per ulteriori informazioni sull'accesso a queste finestre di dialogo, vedere View and Modify Distributor and Publisher Properties.

  5. Finestra di dialogo Proprietà server di pubblicazione - <Server di pubblicazione> . 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. Connettersi al server in SQL Server Management Studio e quindi espandere il nodo del 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. Fare clic su OK.

Per modificare le impostazioni di sicurezza per l'agente snapshot

  1. Nella pagina Sicurezza agente della finestra di dialogo Proprietà pubblicazione - <Pubblicazione> fare clic sul pulsante Impostazioni di sicurezza 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 è un server di pubblicazione Oracle, il contesto di connessione viene specificato nella finestra di dialogo **Proprietà server di distribuzione - <Server di distribuzione>**. Per la procedura di modifica del contesto, vedere di seguito.

  4. Fare clic su OK.

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

  1. Nella pagina Sicurezza agente della finestra di dialogo Proprietà pubblicazione - <Pubblicazione> fare clic sul pulsante Impostazioni di 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 è un server di pubblicazione Oracle, il contesto di connessione viene specificato nella finestra di dialogo **Proprietà server di distribuzione - <Server di distribuzione>**. Modificare il contesto utilizzando la procedura descritta di seguito.

  4. Fare clic su 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 - <Server di distribuzione fare clic sul pulsante 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. Fare clic su OK.

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

  1. Nella finestra di dialogo Proprietà sottoscrizione - <Sottoscrizione> nel 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. Fare clic su OK.

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

  1. Nella finestra di dialogo Proprietà sottoscrizione - <Sottoscrizione> nel 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. Fare clic su OK.

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

  1. Nella finestra di dialogo Proprietà sottoscrizione - <Sottoscrizione> nel 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. Fare clic su OK.

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

  1. Nella finestra di dialogo Proprietà sottoscrizione - <Sottoscrizione> nel 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. Fare clic su 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 - <Server di distribuzione> 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 sicurezza 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. Fare clic su 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 - <Server di distribuzione> fare 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. Fare clic su 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> nel Sottoscrittore fare clic sulla riga Connessione server di pubblicazione , quindi fare clic sul 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. Fare clic su 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, usare 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 - <Server di distribuzione> immettere una password complessa nelle caselle di testo Password e Conferma password .

  2. Fare clic su OK.

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

  4. Fare clic su OK.

Uso 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. Specificare l'account di Microsoft Windows o Microsoft SQL Server l'account di accesso la cui password viene modificata per @login e la nuova password per l'account o l'account di accesso per @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 utilizzato per eseguire l'agente o solo la password per tale account, specificare @job_login e @job_password.

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

    • Quando si modifica la modalità di sicurezza utilizzata per la connessione al server di pubblicazione da 1 a 0 o quando si modifica un account di accesso SQL Server utilizzato per questa connessione, specificare @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 utilizzato per eseguire l'agente o solo la password per tale account, specificare @job_login e @job_password.

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

    • Quando si modifica la modalità di sicurezza utilizzata per la connessione al server di pubblicazione da 1 a 0 o quando si modifica un account di accesso SQL Server utilizzato per questa connessione, specificare @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 @propertye 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 utilizzato per eseguire l'agente o solo la password per tale account, specificare un 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 utilizzata 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 un 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 @propertye 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 utilizzato per eseguire l'agente o solo la password per tale account, specificare un 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 utilizzata 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 un 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, @subscribere @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 @propertye 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 utilizzato per eseguire l'agente o solo la password per tale account, specificare un 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 utilizzata 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 un 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 utilizzata per la connessione al server di pubblicazione, specificare un valore publisher_security_mode per @property e il valore 1 (autenticazione integrata di Windows) o 0 (autenticazione di SQL Server) per @value.

    • Quando si modifica la modalità di sicurezza del server di pubblicazione in autenticazione SQL Server o se si modificano le informazioni di accesso per SQL Server Autenticazione, specificare un valore di publisher_passwordper@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 @propertye 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 utilizzato per eseguire l'agente o solo la password per tale account, specificare un valore merge_job_password per @property e una nuova password per @value. Quando si modifica l'account stesso, ripetere il passaggio 2 specificando un valore di merge_job_login per @property e il nuovo account Windows per @value.

    • Per modificare la modalità di sicurezza utilizzata 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 un 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 utilizzata per la connessione al server di pubblicazione, specificare un 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 un 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_jobnamee una nuova password per @job_password o nome di accesso e password per l'account di Windows utilizzato 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_passwsord.

    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 al server collegato definito dall'utente esistente creato usando 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 utilizzato 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 è necessario archiviare le credenziali, usare i servizi di crittografia forniti 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 parametri seguenti:

    • 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 SQL Server Autenticazione come tipo di autenticazione utilizzata dall'agente quando si connette al Sottoscrittore, impostare il WindowsAuthentication campo della SubscriberSecurity proprietà su falsee specificare le credenziali di accesso del Sottoscrittore per i SqlStandardLogin campi eSqlStandardPassword.

      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 SQL Server Autenticazione come tipo di autenticazione utilizzata dall'agente quando si connette al server di distribuzione, impostare il WindowsAuthentication campo della proprietà su falsee specificare le credenziali di DistributorSecurity accesso del server di distribuzione per i SqlStandardLogin campi eSqlStandardPassword.

      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 SQL Server Autenticazione come tipo di autenticazione utilizzata dall'agente quando si connette al server di distribuzione, impostare il WindowsAuthentication campo della proprietà su falsee specificare le credenziali di DistributorSecurity accesso del server di distribuzione per i SqlStandardLogin campi eSqlStandardPassword.

    • 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 SQL Server Autenticazione come tipo di autenticazione usato dall'agente quando si connette al server di pubblicazione, impostare il WindowsAuthentication campo della proprietà su falsee specificare le credenziali di PublisherSecurity accesso del server di pubblicazione per i SqlStandardLogin campi eSqlStandardPassword.

      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 SQL Server Autenticazione come tipo di autenticazione utilizzata dall'agente quando si connette al Sottoscrittore, impostare il WindowsAuthentication campo della SubscriberSecurity proprietà su falsee specificare le credenziali di accesso del Sottoscrittore per i SqlStandardLogin campi eSqlStandardPassword.

    • 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 SQL Server Autenticazione come tipo di autenticazione usato dall'agente quando si connette al server di pubblicazione, impostare il WindowsAuthentication campo della proprietà su falsee specificare le credenziali di PublisherSecurity accesso del server di pubblicazione per i SqlStandardLogin campi eSqlStandardPassword.

      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[1] = @"\";

        // 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 occured 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 occured 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.

Vedere anche

Concetti di base relativi a RMO (Replication Management Objects)
Aggiornamento di script di replica (programmazione Transact-SQL della replica)
Gestione degli account di accesso e delle password nella replica
Modello di sicurezza dell'agente di replica
Procedure consigliate per la sicurezza della replica
sicurezza replica di SQL Server
Replication System Stored Procedures Concepts