Export (0) Print
Expand All
This topic has not yet been rated - Rate this topic

Subscription.SynchronizationAgentProcessSecurity Property

Gets the security context that is used to specify the Microsoft Windows account under which the synchronization agent job runs to synchronize the subscription.

Namespace: Microsoft.SqlServer.Replication
Assembly: Microsoft.SqlServer.Rmo (in microsoft.sqlserver.rmo.dll)
public IProcessSecurityContext SynchronizationAgentProcessSecurity { get; }
/** @property */
public IProcessSecurityContext get_SynchronizationAgentProcessSecurity ()

public function get SynchronizationAgentProcessSecurity () : IProcessSecurityContext

Property Value

An IProcessSecurityContext object that represents a Windows account.

You must specify Windows account information using the IProcessSecurityContext interface returned by the SynchronizationAgentProcessSecurity property. This is not required if the subscription is created by a member of the sysadmin fixed server role at the Publisher.

The synchronization agent for a push subscription always connects locally to the Distributor using the Windows Authentication credentials supplied using the SynchronizationAgentProcessSecurity property. For information about the connections that agents make and the permissions that are required for those connections, see Replication Agent Security Model.

When configuring a Publisher with a remote Distributor, the values supplied for all parameters, including SynchronizationAgentProcessSecurity, are sent to the Distributor as plain text. You should encrypt the connection between the Publisher and its remote Distributor before calling the Create method. For more information, see Encrypting Connections to SQL Server.

The SynchronizationAgentProcessSecurity property can only be retrieved by members of the sysadmin fixed server role at the Publisher, by members of the db_owner fixed database role on the publication database, or by the user that created the subscription.

The SynchronizationAgentProcessSecurity property can only be set by members of the sysadmin fixed server role at the Publisher or by members of the db_owner fixed database role on the publication database.

Retrieving the SynchronizationAgentProcessSecurity property is equivalent to executing sp_helpsubscription or sp_helpmergesubscription.

Setting properties on the returned IProcessSecurityContext interface is equivalent to executing sp_addsubscriptionsp_addmergesubscription, sp_changesubscription, or sp_changemergesubscription.

The SynchronizationAgentProcessSecurity property is available with Microsoft SQL Server 2005 only.

This namespace, class, or member is supported only in version 2.0 of the Microsoft .NET Framework.


// Define the Publisher, publication, and databases.
string publicationName = "AdvWorksProductTran";
string publisherName = publisherInstance;
string subscriberName = subscriberInstance;
string subscriptionDbName = "AdventureWorksReplica";
string publicationDbName = "AdventureWorks";

//Create a connection to the Publisher.
ServerConnection conn = new ServerConnection(subscriberName);

// Create the objects that we need.
TransPublication publication;
TransSubscription subscription;

try
{
    // Connect to the Publisher.
    conn.Connect();

    // Ensure that the publication exists and that 
    // it supports push subscriptions.
    publication = new TransPublication();
    publication.Name = publicationName;
    publication.DatabaseName = publicationDbName;
    publication.ConnectionContext = conn;

    if (publication.IsExistingObject)
    {
        if ((publication.Attributes & PublicationAttributes.AllowPush) == 0)
        {
            publication.Attributes |= PublicationAttributes.AllowPush;
        }

        // Define the push subscription.
        subscription = new TransSubscription();
        subscription.ConnectionContext = conn;
        subscription.SubscriberName = subscriberName;
        subscription.PublicationName = publicationName;
        subscription.DatabaseName = publicationDbName;
        subscription.SubscriptionDBName = subscriptionDbName;

        // Specify the Windows login credentials for the Distribution Agent job.
        subscription.SynchronizationAgentProcessSecurity.Login = winLogin;
        subscription.SynchronizationAgentProcessSecurity.Password = winPassword;

        // By default, subscriptions to transactional publications are synchronized 
        // continuously, but in this case we only want to synchronize on demand.
        subscription.AgentSchedule.FrequencyType = ScheduleFrequencyType.OnDemand;
 
        // Create the push subscription.
        subscription.Create();
    }
    else
    {
        // Do something here if the publication does not exist.
        throw new ApplicationException(String.Format(
            "The publication '{0}' does not exist on {1}.",
            publicationName, publisherName));
    }
}
catch (Exception ex)
{
    // Implement the appropriate error handling here.
    throw new ApplicationException(String.Format(
        "The subscription to {0} could not be created.", publicationName), ex);
}
finally
{
    conn.Disconnect();
}

Any public static (Shared in Microsoft Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Development Platforms

For a list of the supported platforms, see Hardware and Software Requirements for Installing SQL Server 2005.

Target Platforms

Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

ADD
Show:
© 2014 Microsoft. All rights reserved.