가용성 복제본에 대한 읽기 전용 액세스 구성(SQL Server)Configure Read-Only Access on an Availability Replica (SQL Server)

기본적으로 주 복제본에 대한 읽기/쓰기 및 읽기 전용 액세스가 모두 허용되며 Always On 가용성 그룹의 보조 복제본에 대한 연결은 허용되지 않습니다.By default both read-write and read-intent access are allowed to the primary replica and no connections are allowed to secondary replicas of an Always On availability group. 이 항목에서는 SQL Server 2017SQL Server 2017 에서 SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQL또는 PowerShell을 사용하여 Always On 가용성 그룹의 가용성 복제본에 대한 연결 액세스를 구성하는 방법을 설명합니다.This topic describes how to configure connection access on an availability replica of an Always On availability group in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQL, or PowerShell.

보조 복제본에 대해 읽기 전용 액세스를 사용하도록 설정할 경우의 영향에 대한 자세한 내용과 연결 액세스 소개는 가용성 복제본에 대한 클라이언트 연결 액세스 정보(SQL Server)활성 보조: 읽기 가능한 보조 복제본(Always ON 가용성 그룹)을 참조하세요.For information about the implications of enabling read-only access for a secondary replica and for an introduction to connection access, see About Client Connection Access to Availability Replicas (SQL Server) and Active Secondaries: Readable Secondary Replicas (Always On Availability Groups).

시작하기 전 주의 사항 Before You Begin

사전 요구 사항 및 제한 사항 Prerequisites and Restrictions

  • 다른 연결 액세스를 구성하려면 주 복제본을 호스팅하는 서버 인스턴스에 연결되어 있어야 합니다.To configure different connection access, you must be connected to the server instance that hosts the primary replica.

보안 Security

사용 권한 Permissions

태스크Task 사용 권한Permissions
가용성 그룹을 만들 때 복제본을 구성하려면To configure replicas when creating an availability group CREATE AVAILABILITY GROUP 서버 권한, ALTER ANY AVAILABILITY GROUP 권한, CONTROL SERVER 권한 중 하나와 sysadmin 고정 서버 역할의 멤버 자격이 필요합니다.Requires membership in the sysadmin fixed server role and either CREATE AVAILABILITY GROUP server permission, ALTER ANY AVAILABILITY GROUP permission, or CONTROL SERVER permission.
가용성 복제본을 수정하려면To modify an availability replica 가용성 그룹에 대한 ALTER AVAILABILITY GROUP 권한, CONTROL AVAILABILITY GROUP 권한, ALTER ANY AVAILABILITY GROUP 권한 또는 CONTROL SERVER 권한이 필요합니다.Requires ALTER AVAILABILITY GROUP permission on the availability group, CONTROL AVAILABILITY GROUP permission, ALTER ANY AVAILABILITY GROUP permission, or CONTROL SERVER permission.

SQL Server Management Studio 사용 Using SQL Server Management Studio

가용성 복제본에 대한 액세스를 구성하려면To configure access on an availability replica

  1. 개체 탐색기에서 주 복제본을 호스팅하는 서버 인스턴스에 연결하고 서버 트리를 확장합니다.In Object Explorer, connect to the server instance that hosts the primary replica, and expand the server tree.

  2. Always On 고가용성 노드 및 가용성 그룹 노드를 확장합니다.Expand the Always On High Availability node and the Availability Groups node.

  3. 복제본을 변경할 가용성 그룹을 클릭합니다.Click the availability group whose replica you want to change.

  4. 가용성 복제본을 마우스 오른쪽 단추로 클릭하고 속성을 클릭합니다.Right-click the availability replica, and click Properties.

  5. 가용성 복제본 속성 대화 상자에서 다음과 같이 주 역할 및 보조 역할에 대한 연결 액세스를 변경할 수 있습니다.In the Availability Replica Properties dialog box, you can change the connection access for the primary role and for the secondary role, as follows:

    • 보조 역할의 경우 읽기용 보조 드롭 목록의 다음 값 중에서 새 값을 선택합니다.For the secondary role, select a new value from the Readable secondary drop list, as follows:

      아니요No
      이 복제본의 보조 데이터베이스에 대한 사용자 연결이 허용되지 않습니다.No user connections are allowed to secondary databases of this replica. 즉, 읽기 액세스가 가능하지 않습니다.They are not available for read access. 이 값은 기본 설정입니다.This is the default setting.

      읽기 전용만Read-intent only
      이 복제본의 보조 데이터베이스에 대한 읽기 전용 연결만 허용됩니다.Only read-only connections are allowed to secondary databases of this replica. 즉, 모든 보조 데이터베이스에 대한 읽기 액세스가 가능합니다.The secondary database(s) are all available for read access.

      Yes
      이 복제본의 보조 데이터베이스에 대한 모든 연결이 허용되지만 읽기 액세스만 가능합니다.All connections are allowed to secondary databases of this replica, but only for read access. 즉, 모든 보조 데이터베이스에 대한 읽기 액세스가 가능합니다.The secondary database(s) are all available for read access.

    • 주 역할의 경우 주 역할의 연결 모드 드롭 목록의 다음 값 중에서 새 값을 선택합니다.For the primary role, select a new value from the Connections in primary role drop list, as follows:

      모든 연결 허용Allow all connections
      주 복제본의 데이터베이스에 대한 모든 연결이 허용됩니다.All connections are allowed to the databases in the primary replica. 이 값은 기본 설정입니다.This is the default setting.

      읽기/쓰기 연결 허용Allow read/write connections
      응용 프로그램 의도 속성이 ReadWrite 로 설정되었거나 응용 프로그램 의도 연결 속성이 설정되지 않은 경우에는 연결이 허용됩니다.When the Application Intent property is set to ReadWrite or the Application Intent connection property is not set, the connection is allowed. 응용 프로그램 의도 연결 속성이 ReadOnly 로 설정된 연결은 허용되지 않습니다.Connections where the Application Intent connection property is set to ReadOnly are not allowed. 따라서 고객이 읽기 전용 작업을 실수로 주 복제본에 연결하는 것을 방지할 수 있습니다.This can help prevent customers from connecting a read-intent work load to the primary replica by mistake. 응용 프로그램 의도 연결 속성에 대한 자세한 내용은 Using Connection String Keywords with SQL Server Native Client을 참조하십시오.For more information about Application Intent connection property, see Using Connection String Keywords with SQL Server Native Client.

Transact-SQL 사용 Using Transact-SQL

가용성 복제본에 대한 액세스를 구성하려면To configure access on an availability replica

참고

이 절차에 대한 예는 이 섹션의 뒷부분에 나오는 예제(Transact-SQL)을 참조하세요.For an example of this procedure, see Example (Transact-SQL), later in this section.

  1. 주 복제본을 호스팅하는 서버 인스턴스에 연결합니다.Connect to the server instance that hosts the primary replica.

  2. 새 가용성 그룹에 대한 복제본을 지정하려는 경우 CREATE AVAILABILITY GROUP Transact-SQLTransact-SQL 문을 사용합니다.If you are specifying a replica for a new availability group, use the CREATE AVAILABILITY GROUP Transact-SQLTransact-SQL statement. 기존 가용성 그룹의 복제본을 추가하거나 수정하려는 경우에는 ALTER AVAILABILITY GROUP Transact-SQLTransact-SQL 문을 사용합니다.If you are adding or modifying a replica of an existing availability group, use the ALTER AVAILABILITY GROUP Transact-SQLTransact-SQL statement.

    • 보조 역할에 대한 연결 액세스를 구성하려면 ADD REPLICA 또는 MODIFY REPLICA WITH 절에서 다음과 같이 SECONDARY_ROLE 옵션을 지정합니다.To configure connection access for the secondary role, in the ADD REPLICA or MODIFY REPLICA WITH clause, specify the SECONDARY_ROLE option, as follows:

      SECONDARY_ROLE ( ALLOW_CONNECTIONS = { NO | READ_ONLY | ALL } )SECONDARY_ROLE ( ALLOW_CONNECTIONS = { NO | READ_ONLY | ALL } )

      각 항목이 나타내는 의미는 다음과 같습니다.where,

      아니요NO
      이 복제본의 보조 데이터베이스에 대한 직접 연결이 허용되지 않습니다.No direct connections are allowed to secondary databases of this replica. 즉, 읽기 액세스가 가능하지 않습니다.They are not available for read access. 이 값은 기본 설정입니다.This is the default setting.

      READ_ONLYREAD_ONLY
      이 복제본의 보조 데이터베이스에 대한 읽기 전용 연결만 허용됩니다.Only read-only connections are allowed to secondary databases of this replica. 즉, 모든 보조 데이터베이스에 대한 읽기 액세스가 가능합니다.The secondary database(s) are all available for read access.

      ALLALL
      이 복제본의 보조 데이터베이스에 대한 모든 연결이 허용되지만 읽기 액세스만 가능합니다.All connections are allowed to secondary databases of this replica, but only for read access. 즉, 모든 보조 데이터베이스에 대한 읽기 액세스가 가능합니다.The secondary database(s) are all available for read access.

  3. 주 역할에 대한 연결 액세스를 구성하려면 ADD REPLICA 또는 MODIFY REPLICA WITH 절에서 다음과 같이 PRIMARY_ROLE 옵션을 지정합니다.To configure connection access for the primary role, in the ADD REPLICA or MODIFY REPLICA WITH clause, specify the PRIMARY_ROLE option, as follows:

    PRIMARY_ROLE ( ALLOW_CONNECTIONS = { READ_WRITE | ALL } )PRIMARY_ROLE ( ALLOW_CONNECTIONS = { READ_WRITE | ALL } )

    각 항목이 나타내는 의미는 다음과 같습니다.where,

    READ_WRITEREAD_WRITE
    응용 프로그램 의도 연결 속성이 ReadOnly 로 설정된 연결은 허용되지 않습니다.Connections where the Application Intent connection property is set to ReadOnly are disallowed. 응용 프로그램 의도 속성이 ReadWrite 로 설정되었거나 응용 프로그램 의도 연결 속성이 설정되지 않은 경우에는 연결이 허용됩니다.When the Application Intent property is set to ReadWrite or the Application Intent connection property is not set, the connection is allowed. 응용 프로그램 의도 연결 속성에 대한 자세한 내용은 Using Connection String Keywords with SQL Server Native Client을 참조하십시오.For more information about Application Intent connection property, see Using Connection String Keywords with SQL Server Native Client.

    ALLALL
    주 복제본의 데이터베이스에 대한 모든 연결이 허용됩니다.All connections are allowed to the databases in the primary replica. 이 값은 기본 설정입니다.This is the default setting.

예제(Transact-SQL) Example (Transact-SQL)

다음 예제에서는 AG2라는 가용성 그룹에 보조 복제본을 추가합니다.The following example adds a secondary replica to an availability group named AG2. 독립 실행형 서버 인스턴스인 COMPUTER03\HADR_INSTANCE가 새 가용성 복제본을 호스트하도록 지정됩니다.A stand-alone server instance, COMPUTER03\HADR_INSTANCE, is specified to host the new availability replica. 이 복제본은 주 역할에 대해 읽기/쓰기 연결만 허용하고 보조 역할에 대해 읽기 전용 연결만 허용하도록 구성되어 있습니다.This replica configured to allow only read-write connections for the primary role and to allow only read-intent connections for secondary role.

ALTER AVAILABILITY GROUP AG2   
   ADD REPLICA ON   
      'COMPUTER03\HADR_INSTANCE' WITH   
         (  
         ENDPOINT_URL = 'TCP://COMPUTER03:7022',  
         PRIMARY_ROLE ( ALLOW_CONNECTIONS = READ_WRITE ),  
         SECONDARY_ROLE (ALLOW_CONNECTIONS = READ_ONLY )  
         );   
GO  

PowerShell 사용 Using PowerShell

가용성 복제본에 대한 액세스를 구성하려면To configure access on an availability replica

참고

코드 예제를 보려면 이 섹션의 뒷부분에 나오는 예제(PowerShell)을 참조하세요.For a code example, see Example (PowerShell), later in this section.

  1. 주 복제본을 호스트하는 서버 인스턴스로 디렉터리를 변경(cd)합니다.Change directory (cd) to the server instance that hosts the primary replica.

  2. 가용성 그룹에 가용성 복제본을 추가하는 경우 New-SqlAvailabilityReplica cmdlet을 사용합니다.When adding an availability replica to an availability group, use the New-SqlAvailabilityReplica cmdlet. 기존 가용성 복제본을 수정하는 경우 Set-SqlAvailabilityReplica cmdlet을 사용합니다.When modifying an existing availability replica, use the Set-SqlAvailabilityReplica cmdlet. 관련 매개 변수는 다음과 같습니다.The relevant parameters are as follows:

    • 보조 역할에 대한 연결 액세스를 구성하려면 ConnectionModeInSecondaryRolesecondary_role_keyword 매개 변수를 지정합니다. 여기서 secondary_role_keyword 에는 다음 값 중 하나를 사용합니다.To configure connection access for the secondary role, specify the ConnectionModeInSecondaryRolesecondary_role_keyword parameter, where secondary_role_keyword equals one of the following values:

      AllowNoConnectionsAllowNoConnections
      보조 복제본의 데이터베이스에 대한 직접 연결이 허용되지 않으며 읽기 액세스를 위해 데이터베이스에 연결할 수 없습니다.No direct connections are allowed to the databases in the secondary replica and the databases are not available for read access. 이 값은 기본 설정입니다.This is the default setting.

      AllowReadIntentConnectionsOnlyAllowReadIntentConnectionsOnly
      응용 프로그램 의도 속성이 ReadOnly로 설정된 경우에만 보조 복제본의 데이터베이스에 연결할 수 있습니다.Connections are allowed only to the databases in the secondary replica where the Application Intent property is set to ReadOnly. 이 속성에 대한 자세한 내용은 Using Connection String Keywords with SQL Server Native Client을 참조하십시오.For more information about this property, see Using Connection String Keywords with SQL Server Native Client.

      AllowAllConnectionsAllowAllConnections
      보조 복제본의 데이터베이스에 대해 읽기 전용 액세스를 위한 모든 연결이 허용됩니다.All connections are allowed to the databases in the secondary replica for read-only access.

    • 주 역할에 대한 연결 액세스를 구성하려면 ConnectionModeInPrimaryRoleprimary_role_keyword를 지정합니다. 여기서 primary_role_keyword 에는 다음 값 중 하나를 사용합니다.To configure connection access for the primary role, specify ConnectionModeInPrimaryRoleprimary_role_keyword, where primary_role_keyword equals one of the following values:

      AllowReadWriteConnectionsAllowReadWriteConnections
      응용 프로그램 의도 연결 속성이 ReadOnly로 설정된 연결은 허용되지 않습니다.Connections where the Application Intent connection property is set to ReadOnly are disallowed. 응용 프로그램 의도 속성이 ReadWrite로 설정되었거나 응용 프로그램 의도 연결 속성이 설정되지 않은 경우에는 연결이 허용됩니다.When the Application Intent property is set to ReadWrite or the Application Intent connection property is not set, the connection is allowed. 응용 프로그램 의도 연결 속성에 대한 자세한 내용은 Using Connection String Keywords with SQL Server Native Client을 참조하십시오.For more information about Application Intent connection property, see Using Connection String Keywords with SQL Server Native Client.

      AllowAllConnectionsAllowAllConnections
      주 복제본의 데이터베이스에 대한 모든 연결이 허용됩니다.All connections are allowed to the databases in the primary replica. 이 값은 기본 설정입니다.This is the default setting.

    참고

    cmdlet의 구문을 보려면 PowerShell 환경에서 Get-Help SQL Server 2017SQL Server 2017 cmdlet을 사용합니다.To view the syntax of a cmdlet, use the Get-Help cmdlet in the SQL Server 2017SQL Server 2017 PowerShell environment. 자세한 내용은 Get Help SQL Server PowerShell을 참조하세요.For more information, see Get Help SQL Server PowerShell.

    SQL Server PowerShell 공급자를 설정하고 사용하려면To set up and use the SQL Server PowerShell provider

예제(PowerShell) Example (PowerShell)

다음 예에서는 ConnectionModeInSecondaryRoleConnectionModeInPrimaryRole 매개 변수를 모두 AllowAllConnections으로 설정합니다.The following example, sets the both the ConnectionModeInSecondaryRole and ConnectionModeInPrimaryRole parameters to AllowAllConnections.

Set-Location SQLSERVER:\SQL\PrimaryServer\default\AvailabilityGroups\MyAg  
$primaryReplica = Get-Item "AvailabilityReplicas\PrimaryServer"  
Set-SqlAvailabilityReplica -ConnectionModeInSecondaryRole "AllowAllConnections" `   
-InputObject $primaryReplica  
Set-SqlAvailabilityReplica -ConnectionModeInPrimaryRole "AllowAllConnections" `   
-InputObject $primaryReplica  

후속 작업: 가용성 복제본에 대한 읽기 전용 액세스를 구성한 후의 작업 Follow Up: After Configuring Read-Only Access for an Availability Replica

읽을 수 있는 보조 복제본에 대한 읽기 전용 액세스Read-only access to a readable secondary replica

  • bcp 유틸리티 또는 sqlcmd 유틸리티를 사용하는 경우 -K ReadOnly 스위치를 지정하여 읽기 전용 액세스를 사용하도록 설정된 보조 복제본에 대한 읽기 전용 액세스를 지정할 수 있습니다.When using the bcp Utility or sqlcmd Utility, you can specify read-only access to any secondary replica that is enabled for read-only access by specifying the -K ReadOnly switch.

  • 클라이언트 응용 프로그램을 읽을 수 있는 보조 복제본에 연결할 수 있도록 설정하려면:To enable client applications to connect to readable secondary replicas:

    사전 요구 사항Prerequisite 링크Link
    확인란Checkbox 가용성 그룹에 수신기가 있는지 확인합니다.Ensure that the availability group has a listener. 가용성 그룹 수신기 만들기 또는 구성(SQL Server)Create or Configure an Availability Group Listener (SQL Server)
    확인란Checkbox 가용성 그룹에 대한 읽기 전용 라우팅을 구성합니다.Configure read-only routing for the availability group. 가용성 그룹에 대한 읽기 전용 라우팅 구성(SQL Server)Configure Read-Only Routing for an Availability Group (SQL Server)

    장애 조치(Failover) 후 트리거 및 작업에 영향을 줄 수 있는 요소Factors that might affect triggers and jobs after a failover

    읽을 수 없는 보조 데이터베이스 또는 읽을 수 있는 보조 데이터베이스에서 실행할 때 실패하는 트리거 및 작업이 있는 경우 트리거와 작업을 스크립팅하여 지정된 복제본에서 데이터베이스가 주 데이터베이스인지 읽을 수 있는 보조 데이터베이스인지 확인해야 합니다.If you have triggers and jobs that will fail when running on a non-readable secondary database or on a readable secondary database, you need to script the triggers and jobs to check on a given replica to determine whether the database is a primary database or is a readable secondary database. 이 정보를 얻으려면 DATABASEPROPERTYEX 함수를 사용하여 데이터베이스의 Updatability 속성을 반환합니다.To obtain this information, use the DATABASEPROPERTYEX function to return the Updatability property of the database. 읽기 전용 데이터베이스를 식별하려면 다음과 같이 READ_ONLY를 값으로 지정합니다.To identify a read-only database, specify READ_ONLY as the value, as follows:

DATABASEPROPERTYEX([db name],’Updatability’) = N’READ_ONLY’  

쓰기 전용 데이터베이스를 식별하려면 READ_WRITE를 값으로 지정합니다.To identify a read-write database, specify READ_WRITE as the value.

참고 항목See Also

Always On 가용성 그룹 개요(SQL Server) Overview of Always On Availability Groups (SQL Server)
활성 보조: 읽기 가능한 보조 복제본(Always ON 가용성 그룹) Active Secondaries: Readable Secondary Replicas (Always On Availability Groups)
가용성 복제본에 대한 클라이언트 연결 액세스 정보(SQL Server)About Client Connection Access to Availability Replicas (SQL Server)