Subscription.SynchronizationAgentProcessSecurity Subscription.SynchronizationAgentProcessSecurity Subscription.SynchronizationAgentProcessSecurity Property

정의

구독을 동기화 할 동기화 에이전트 작업이 실행 되는 Microsoft Windows 계정을 지정 하는 데 사용 되는 보안 컨텍스트를 가져옵니다. Gets the security context that is used to specify the Microsoft Windows account under which the synchronization agent job runs to synchronize the subscription.

public:
 property Microsoft::SqlServer::Replication::IProcessSecurityContext ^ SynchronizationAgentProcessSecurity { Microsoft::SqlServer::Replication::IProcessSecurityContext ^ get(); };
public Microsoft.SqlServer.Replication.IProcessSecurityContext SynchronizationAgentProcessSecurity { get; }
Public ReadOnly Property SynchronizationAgentProcessSecurity As IProcessSecurityContext
속성 값

Windows 계정을 나타내는 IProcessSecurityContext 개체입니다. An IProcessSecurityContext object that represents a Windows account.

예제

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

//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();
}
' Define the Publisher, publication, and databases.
Dim publicationName As String = "AdvWorksProductTran"
Dim publisherName As String = publisherInstance
Dim subscriberName As String = subscriberInstance
Dim subscriptionDbName As String = "AdventureWorks2012Replica"
Dim publicationDbName As String = "AdventureWorks2012"

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

' Create the objects that we need.
Dim publication As TransPublication
Dim subscription As TransSubscription

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 Then
        If (publication.Attributes And PublicationAttributes.AllowPush) = 0 Then
            publication.Attributes = publication.Attributes _
            Or PublicationAttributes.AllowPush
        End If

        ' 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))
    End If

Catch ex As Exception
    ' Implement the appropriate error handling here.
    Throw New ApplicationException(String.Format( _
        "The subscription to {0} could not be created.", publicationName), ex)
Finally
    conn.Disconnect()
End Try

설명

사용 하 여 Windows 계정 정보를 지정 해야 합니다는 IProcessSecurityContext 인터페이스에서 반환 되는 SynchronizationAgentProcessSecurity 속성입니다.You must specify Windows account information using the IProcessSecurityContext interface returned by the SynchronizationAgentProcessSecurity property. 멤버가 구독을 만들 경우 필요 하지 않습니다는 sysadmin 게시자에서 고정된 서버 역할입니다.This is not required if the subscription is created by a member of the sysadmin fixed server role at the Publisher.

항상 밀어넣기 구독에 대 한 동기화 에이전트를 사용 하 여 제공 하는 Windows 인증 자격 증명을 사용 하 여 배포자에 로컬로 연결 하는 SynchronizationAgentProcessSecurity 속성입니다.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.

모든 매개 변수에 대해 제공 된 값을 원격 배포자로 게시자를 구성할 경우 포함 하 여 SynchronizationAgentProcessSecurity를 일반 텍스트로 배포자에 보내집니다.When configuring a Publisher with a remote Distributor, the values supplied for all parameters, including SynchronizationAgentProcessSecurity, are sent to the Distributor as plain text. Create 메서드를 호출하기 전에 게시자와 해당 원격 배포자 간 연결을 암호화해야 합니다.You should encrypt the connection between the Publisher and its remote Distributor before calling the Create method. 자세한 내용은 참조 SQL Server 연결 암호화합니다.For more information, see Encrypting Connections to SQL Server.

SynchronizationAgentProcessSecurity 의 구성원만 속성을 검색할 수는 sysadmin 고정된 서버 역할의 멤버에 의해 게시자에는 db_owner 고정된 데이터베이스 역할 또는 게시 데이터베이스에서의 구독을 만든 사용자입니다.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.

SynchronizationAgentProcessSecurity 속성의 구성원으로 설정할 수 있습니다는 sysadmin 고정된 서버 역할의 멤버 또는 게시자에는 db_owner 게시 데이터베이스의 고정된 데이터베이스 역할입니다.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.

검색 된 SynchronizationAgentProcessSecurity 속성은 실행 sp_helpsubscription 또는 sp_helpmergesubscription합니다.Retrieving the SynchronizationAgentProcessSecurity property is equivalent to executing sp_helpsubscription or sp_helpmergesubscription.

반환 된 속성을 설정 IProcessSecurityContext 인터페이스 실행에 해당 하는 sp_addsubscriptionsp_addmergesubscription, sp_changesubscription, 또는 sp_changemergesubscription합니다.Setting properties on the returned IProcessSecurityContext interface is equivalent to executing sp_addsubscriptionsp_addmergesubscription, sp_changesubscription, or sp_changemergesubscription.

적용 대상

추가 정보