MergeSynchronizationAgent.PublisherSecurityMode MergeSynchronizationAgent.PublisherSecurityMode MergeSynchronizationAgent.PublisherSecurityMode Property

정의

게시자에 연결할 때 사용되는 보안 모드를 가져오거나 설정합니다. Gets or sets the security mode that is used when connecting to the Publisher.

public:
 virtual property Microsoft::SqlServer::Replication::SecurityMode PublisherSecurityMode { Microsoft::SqlServer::Replication::SecurityMode get(); void set(Microsoft::SqlServer::Replication::SecurityMode value); };
public virtual Microsoft.SqlServer.Replication.SecurityMode PublisherSecurityMode { get; set; }
Public Overridable Property PublisherSecurityMode As SecurityMode
속성 값

A SecurityMode 보안 모드를 나타내는 값입니다. A SecurityMode value that represents the security mode.

구현

예제

// Define the server, publication, and database names.
string subscriberName = subscriberInstance;
string publisherName = publisherInstance;
         string distributorName = distributorInstance;
         string publicationName = "AdvWorksSalesOrdersMerge";
string subscriptionDbName = "AdventureWorks2012Replica";
string publicationDbName = "AdventureWorks2012";
string hostname = @"adventure-works\garrett1";
string webSyncUrl = "https://" + publisherInstance + "/SalesOrders/replisapi.dll";

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

MergePullSubscription subscription;
MergeSynchronizationAgent agent;

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

	// Define the pull subscription.
	subscription = new MergePullSubscription();
	subscription.ConnectionContext = conn;
	subscription.DatabaseName = subscriptionDbName;
	subscription.PublisherName = publisherName;
	subscription.PublicationDBName = publicationDbName;
	subscription.PublicationName = publicationName;

	// If the pull subscription exists, then start the synchronization.
	if (subscription.LoadProperties())
	{
		// Get the agent for the subscription.
		agent = subscription.SynchronizationAgent;

		// Check that we have enough metadata to start the agent.
		if (agent.PublisherSecurityMode == null)
		{
			// Set the required properties that could not be returned
			// from the MSsubscription_properties table. 
			agent.PublisherSecurityMode = SecurityMode.Integrated;
			agent.DistributorSecurityMode = SecurityMode.Integrated;
                     agent.Distributor = publisherName;
                     agent.HostName = hostname;

			// Set optional Web synchronization properties.
			agent.UseWebSynchronization = true;
			agent.InternetUrl = webSyncUrl;
			agent.InternetSecurityMode = SecurityMode.Standard;
			agent.InternetLogin = winLogin;
			agent.InternetPassword = winPassword;
		}
		// Enable agent output to the console.
		agent.OutputVerboseLevel = 1;
		agent.Output = "";

		// Synchronously start the Merge Agent for the subscription.
		agent.Synchronize();
	}
	else
	{
		// Do something here if the pull subscription does not exist.
		throw new ApplicationException(String.Format(
			"A subscription to '{0}' does not exist on {1}",
			publicationName, subscriberName));
	}
}
catch (Exception ex)
{
	// Implement appropriate error handling here.
	throw new ApplicationException("The subscription could not be " +
		"synchronized. Verify that the subscription has " +
		"been defined correctly.", ex);
}
finally
{
	conn.Disconnect();
}
' Define the server, publication, and database names.
Dim subscriberName As String = subscriberInstance
Dim publisherName As String = publisherInstance
Dim publicationName As String = "AdvWorksSalesOrdersMerge"
Dim subscriptionDbName As String = "AdventureWorks2012Replica"
Dim publicationDbName As String = "AdventureWorks2012"
Dim hostname As String = "adventure-works\garrett1"
Dim webSyncUrl As String = "https://" + publisherInstance + "/SalesOrders/replisapi.dll"

' Create a connection to the Subscriber.
Dim conn As ServerConnection = New ServerConnection(subscriberName)

Dim subscription As MergePullSubscription
Dim agent As MergeSynchronizationAgent

Try
    ' Connect to the Subscriber.
    conn.Connect()

    ' Define the pull subscription.
    subscription = New MergePullSubscription()
    subscription.ConnectionContext = conn
    subscription.DatabaseName = subscriptionDbName
    subscription.PublisherName = publisherName
    subscription.PublicationDBName = publicationDbName
    subscription.PublicationName = publicationName

    ' If the pull subscription exists, then start the synchronization.
    If subscription.LoadProperties() Then
        ' Get the agent for the subscription.
        agent = subscription.SynchronizationAgent

        ' Check that we have enough metadata to start the agent.
        If agent.PublisherSecurityMode = Nothing Then
            ' Set the required properties that could not be returned
            ' from the MSsubscription_properties table. 
            agent.PublisherSecurityMode = SecurityMode.Integrated
            agent.Distributor = publisherInstance
            agent.DistributorSecurityMode = SecurityMode.Integrated
            agent.HostName = hostname

            ' Set optional Web synchronization properties.
            agent.UseWebSynchronization = True
            agent.InternetUrl = webSyncUrl
            agent.InternetSecurityMode = SecurityMode.Standard
            agent.InternetLogin = winLogin
            agent.InternetPassword = winPassword
        End If

        ' Enable agent logging to the console.
        agent.OutputVerboseLevel = 1
        agent.Output = ""

        ' Synchronously start the Merge Agent for the subscription.
        agent.Synchronize()
    Else
        ' Do something here if the pull subscription does not exist.
        Throw New ApplicationException(String.Format( _
         "A subscription to '{0}' does not exist on {1}", _
         publicationName, subscriberName))
    End If
Catch ex As Exception
    ' Implement appropriate error handling here.
    Throw New ApplicationException("The subscription could not be " + _
     "synchronized. Verify that the subscription has " + _
     "been defined correctly.", ex)
Finally
    conn.Disconnect()
End Try

설명

When possible, use Windows Authentication.

값이 Standard, PublisherLoginPublisherPassword 속성도 지정 해야 합니다.If the value is Standard, the PublisherLogin and PublisherPassword properties must also be specified.

적용 대상