ReplicationDatabase.LogReaderAgentProcessSecurity ReplicationDatabase.LogReaderAgentProcessSecurity ReplicationDatabase.LogReaderAgentProcessSecurity Property

정의

배포자에서 로그 판독기 에이전트 작업이 실행 되는 Microsoft Windows 계정을 가져옵니다. Gets the Microsoft Windows account under which the Log Reader Agent job runs at the Distributor.

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

IProcessSecurityContext 로그 판독기 에이전트를 실행할 때 SQL Server 에이전트에서 사용 되는 Windows 계정을 지정 하는 개체입니다. An IProcessSecurityContext object that specifies the Windows account used by SQL Server Agent when running the Log Reader Agent.

예외

로그 판독기 에이전트 작업이 존재 하지 않는 SQL Server 2005 이상 버전의 SQL Server가 아니고 시기나 합니다. When the Log Reader Agent job does not exist or the version of SQL Server is not SQL Server 2005 or later. 때 큐 판독기 에이전트는 SQL Server 2005 복제 에이전트 보안 모델을 업그레이드 되지 않았습니다. When the Queue Reader Agent has not been upgraded to the SQL Server 2005 replication agent security model. 자세한 내용은 [보안 및 보호 (복제)]를 참조 하십시오. (http://msdn.microsoft.com/library/310a8203-c0aa-4794-93fe-737d7c3fcfd6)합니다. For more information, see Security and Protection (Replication).

예제

// Set the Publisher, publication database, and publication names.
string publicationName = "AdvWorksProductTran";
string publicationDbName = "AdventureWorks2012";
string publisherName = publisherInstance;

ReplicationDatabase publicationDb;
TransPublication publication;

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


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

	// Enable the AdventureWorks2012 database for transactional publishing.
	publicationDb = new ReplicationDatabase(publicationDbName, conn);

	// If the database exists and is not already enabled, 
	// enable it for transactional publishing.
	if (publicationDb.LoadProperties())
	{
		if (!publicationDb.EnabledTransPublishing)
		{
			publicationDb.EnabledTransPublishing = true;
		}

		// If the Log Reader Agent does not exist, create it.
		if (!publicationDb.LogReaderAgentExists)
		{
			// Specify the Windows account under which the agent job runs.
			// This account will be used for the local connection to the 
			// Distributor and all agent connections that use Windows Authentication.
			publicationDb.LogReaderAgentProcessSecurity.Login = winLogin;
			publicationDb.LogReaderAgentProcessSecurity.Password = winPassword;

			// Explicitly set authentication mode for the Publisher connection
			// to the default value of Windows Authentication.
			publicationDb.LogReaderAgentPublisherSecurity.WindowsAuthentication = true;

			// Create the Log Reader Agent job.
			publicationDb.CreateLogReaderAgent();
		}
	}
	else
	{
		throw new ApplicationException(String.Format(
			"The {0} database does not exist at {1}.",
			publicationDb, publisherName));
	}

	// Set the required properties for the transactional publication.
	publication = new TransPublication();
	publication.ConnectionContext = conn;
	publication.Name = publicationName;
	publication.DatabaseName = publicationDbName;

	// Specify a transactional publication (the default).
	publication.Type = PublicationType.Transactional;

	// Activate the publication so that we can add subscriptions.
	publication.Status = State.Active;

             // Enable push and pull subscriptions and independent Distribition Agents.
             publication.Attributes |= PublicationAttributes.AllowPull;
             publication.Attributes |= PublicationAttributes.AllowPush;
             publication.Attributes |= PublicationAttributes.IndependentAgent;

	// Specify the Windows account under which the Snapshot Agent job runs.
	// This account will be used for the local connection to the 
	// Distributor and all agent connections that use Windows Authentication.
	publication.SnapshotGenerationAgentProcessSecurity.Login = winLogin;
	publication.SnapshotGenerationAgentProcessSecurity.Password = winPassword;

	// Explicitly set the security mode for the Publisher connection
	// Windows Authentication (the default).
	publication.SnapshotGenerationAgentPublisherSecurity.WindowsAuthentication = true;

	if (!publication.IsExistingObject)
	{
		// Create the transactional publication.
		publication.Create();

		// Create a Snapshot Agent job for the publication.
		publication.CreateSnapshotAgent();
	}
	else
	{
		throw new ApplicationException(String.Format(
			"The {0} publication already exists.", publicationName));
	}
}

catch (Exception ex)
{
	// Implement custom application error handling here.
	throw new ApplicationException(String.Format(
		"The publication {0} could not be created.", publicationName), ex);
}
finally
{
	conn.Disconnect();
}
' Set the Publisher, publication database, and publication names.
Dim publicationName As String = "AdvWorksProductTran"
Dim publicationDbName As String = "AdventureWorks2012"
Dim publisherName As String = publisherInstance

Dim publicationDb As ReplicationDatabase
Dim publication As TransPublication

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

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

    ' Enable the AdventureWorks2012 database for transactional publishing.
    publicationDb = New ReplicationDatabase(publicationDbName, conn)

    ' If the database exists and is not already enabled, 
    ' enable it for transactional publishing.
    If publicationDb.LoadProperties() Then
        If Not publicationDb.EnabledTransPublishing Then
            publicationDb.EnabledTransPublishing = True
        End If

        ' If the Log Reader Agent does not exist, create it.
        If Not publicationDb.LogReaderAgentExists Then
            ' Specify the Windows account under which the agent job runs.
            ' This account will be used for the local connection to the 
            ' Distributor and all agent connections that use Windows Authentication.
            publicationDb.LogReaderAgentProcessSecurity.Login = winLogin
            publicationDb.LogReaderAgentProcessSecurity.Password = winPassword

            ' Explicitly set authentication mode for the Publisher connection
            ' to the default value of Windows Authentication.
            publicationDb.LogReaderAgentPublisherSecurity.WindowsAuthentication = True

            ' Create the Log Reader Agent job.
            publicationDb.CreateLogReaderAgent()
        End If
    Else
        Throw New ApplicationException(String.Format( _
         "The {0} database does not exist at {1}.", _
         publicationDb, publisherName))
    End If

    ' Set the required properties for the transactional publication.
    publication = New TransPublication()
    publication.ConnectionContext = conn
    publication.Name = publicationName
    publication.DatabaseName = publicationDbName

    ' Specify a transactional publication (the default).
    publication.Type = PublicationType.Transactional

    'Enable push and pull subscriptions and independent Distribition Agents.
    publication.Attributes = _
    publication.Attributes Or PublicationAttributes.AllowPull
    publication.Attributes = _
    publication.Attributes Or PublicationAttributes.AllowPush
    publication.Attributes = _
    publication.Attributes Or PublicationAttributes.IndependentAgent

    ' Activate the publication so that we can add subscriptions.
    publication.Status = State.Active

    ' Specify the Windows account under which the Snapshot Agent job runs.
    ' This account will be used for the local connection to the 
    ' Distributor and all agent connections that use Windows Authentication.
    publication.SnapshotGenerationAgentProcessSecurity.Login = winLogin
    publication.SnapshotGenerationAgentProcessSecurity.Password = winPassword

    ' Explicitly set the security mode for the Publisher connection
    ' Windows Authentication (the default).
    publication.SnapshotGenerationAgentPublisherSecurity.WindowsAuthentication = True

    If Not publication.IsExistingObject Then
        ' Create the transactional publication.
        publication.Create()

        ' Create a Snapshot Agent job for the publication.
        publication.CreateSnapshotAgent()
    Else
        Throw New ApplicationException(String.Format( _
            "The {0} publication already exists.", publicationName))
    End If
Catch ex As Exception
    ' Implement custom application error handling here.
    Throw New ApplicationException(String.Format( _
        "The publication {0} could not be created.", publicationName), ex)
Finally
    conn.Disconnect()
End Try

설명

보안상의 이유로 Password 반환 값에는 항상 마스크 됩니다.For security reasons, Password is always masked in the return value.

지정 하는 Windows 계정을 LogReaderAgentProcessSecurity 배포자에 로컬로 연결할 때 로그 판독기 에이전트에 의해 항상 속성은 사용 합니다.The Windows account specified by the LogReaderAgentProcessSecurity property is always used by the Log Reader Agent when connecting locally to the Distributor. 에이전트를 구성 하는 연결 및 해당 연결에 대 한 필요한 사용 권한에 대 한 내용은 참조 복제 에이전트 보안 모델합니다.For information about the connections that agents make and the permissions that are required for those connections, see Replication Agent Security Model.

LogReaderAgentProcessSecurity 의 멤버 속성을 검색할 수는 sysadmin 고정된 서버 역할의 멤버 또는 db_owner 게시 된 데이터베이스의 고정된 데이터베이스 역할입니다.The LogReaderAgentProcessSecurity property can be retrieved by members of the sysadmin fixed server role or by members of the db_owner fixed database role of the published database.

검색 된 LogReaderAgentProcessSecurity 속성은 실행 sp_helplogreader_agent (Transact SQL)합니다.Retrieving the LogReaderAgentProcessSecurity property is equivalent to executing sp_helplogreader_agent (Transact-SQL).

적용 대상

추가 정보