단일 사용자 모드로 데이터베이스 설정

적용 대상: SQL Server(지원되는 모든 버전)

이 문서에서는 SQL Server Management Studio 또는 Transact-SQL을 사용하여 SQL Server 사용자 정의 데이터베이스를 단일 사용자 모드로 설정하는 방법을 설명합니다. 단일 사용자 모드는 한 번에 하나의 사용자만 데이터베이스에 액세스할 수 있도록 지정하며 일반적으로 유지 관리 동작에 사용됩니다.

제한 사항

  • 데이터베이스를 단일 사용자 모드로 설정할 때 다른 사용자가 데이터베이스에 연결되어 있으면 해당 데이터베이스 연결이 경고 없이 닫힙니다.

  • 옵션을 설정한 사용자가 연결이 끊어진 경우에도 데이터베이스는 단일 사용자 모드로 유지됩니다. 이때 다른 한 명의 사용자만 데이터베이스에 연결할 수 있습니다.

사전 요구 사항

  • 데이터베이스를 SINGLE_USER로 설정하기 전에 AUTO_UPDATE_STATISTICS_ASYNC 옵션이 OFF로 설정되어 있는지 확인합니다. 이 옵션이 ON으로 설정되면 통계 업데이트에 사용되는 백그라운드 스레드가 데이터베이스에 대한 연결을 점유하므로 사용자는 단일 사용자 모드로 데이터베이스에 액세스할 수 없습니다. 자세한 내용은 ALTER DATABASE SET 옵션(Transact-SQL)을 참조하세요.

권한

데이터베이스에 대한 ALTER 권한이 필요합니다.

SQL Server Management Studio 사용

데이터베이스를 단일 사용자 모드로 설정하려면 다음을 수행합니다.

  1. 개체 탐색기에서 SQL Server 데이터베이스 엔진의 인스턴스에 연결한 다음 해당 인스턴스를 확장합니다.

  2. 변경할 데이터베이스를 마우스 오른쪽 단추로 클릭한 다음, 속성을 선택합니다.

  3. 데이터베이스 속성 대화 상자에서 옵션 페이지를 선택합니다.

  4. 액세스 제한 옵션에서 단일을 선택합니다.

  5. 다른 사용자가 데이터베이스에 연결되어 있으면 열린 연결 메시지가 나타납니다. 속성을 변경하고 다른 모든 연결을 닫으려면 를 선택합니다.

이 절차에 따라 데이터베이스를 다중 또는 제한됨 액세스로 설정할 수도 있습니다. 액세스 제한 옵션에 대한 자세한 내용은 데이터베이스 속성(옵션 페이지)을 참조하세요.

Transact-SQL 사용

데이터베이스를 단일 사용자 모드로 설정하려면 다음을 수행합니다.

  1. 데이터베이스 엔진에 연결합니다.

  2. 표준 도구 모음에서 새 쿼리를 선택합니다.

  3. 다음 예제를 복사하여 쿼리 창에 붙여넣고 실행을 선택합니다. 이 예에서는 데이터베이스를 SINGLE_USER 모드로 설정하여 배타적 액세스 권한을 확보한 다음 AdventureWorks2019 데이터베이스의 상태를 READ_ONLY 로 설정한 후 데이터베이스 액세스를 모든 사용자에게 반환합니다.

경고

배타적 액세스 권한을 신속하게 얻기 위해 코드 샘플은 종료 옵션 WITH ROLLBACK IMMEDIATE를 사용합니다. 완료되지 않은 트랜잭션은 모두 롤백되며 AdventureWorks2019 데이터베이스로의 다른 모든 연결은 즉시 끊어집니다.

USE master;
GO
ALTER DATABASE AdventureWorks2012
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;
GO
ALTER DATABASE AdventureWorks2012
SET READ_ONLY;
GO
ALTER DATABASE AdventureWorks2012
SET MULTI_USER;
GO

다음 단계