次の方法で共有


データベースをシングル ユーザー モードに設定する

このトピックでは、SQL Server Management Studio または Transact-SQL を使用して、SQL Server 2012 のユーザー定義のデータベースをシングル ユーザー モードに設定する方法について説明します。 シングル ユーザー モードでは、一度に 1 人のユーザーだけがデータベースにアクセスでき、一般にはメンテナンス操作のために使用されます。

このトピックの内容

  • 作業を開始する準備:

    制限事項と制約事項

    前提条件

    セキュリティ

  • 以下を使用してデータベースをシングル ユーザー モードに設定するには:

    SQL Server Management Studio

    Transact-SQL

作業を開始する準備

制限事項と制約事項

  • データベースをシングル ユーザー モードに設定したときに他のユーザーがデータベースに接続していると、データベースに対する接続は警告なく切断されます。

  • このオプションを設定したユーザーがログオフしても、データベースはシングル ユーザー モードのままです。 そのユーザーがログオフした時点で、他のユーザーが 1 人だけデータベースに接続できます。

前提条件

  • データベースを SINGLE_USER に設定する前に、AUTO_UPDATE_STATISTICS_ASYNC オプションが OFF に設定されていることを確認します。 このオプションが ON に設定されていると、統計の更新に使用されるバックグラウンド スレッドによってデータベースへの接続が使用されるため、シングル ユーザー モードではデータベースにアクセスできなくなります。 詳細については、「ALTER DATABASE の SET オプション (Transact-SQL)」を参照してください。

セキュリティ

権限

データベースに対する ALTER 権限が必要です。

[トップに戻る] リンクで使用される矢印アイコン[Top]

SQL Server Management Studio の使用

データベースをシングル ユーザー モードに設定するには

  1. オブジェクト エクスプローラーで、SQL Server データベース エンジンのインスタンスに接続し、そのインスタンスを展開します。

  2. 変更するデータベースを右クリックして、[プロパティ] をクリックします。

  3. [データベースのプロパティ] ダイアログ ボックスで、[オプション] ページをクリックします。

  4. [アクセスの制限] オプションで、[Single] をクリックします。

  5. 他のユーザーがデータベースに接続していると、"接続を開く" というメッセージが表示されます。 プロパティを変更して他のすべての接続を閉じるには、[はい] をクリックします。

この手順を使用して、データベースを複数アクセス モードまたは制限アクセス モードに設定することもできます。 [アクセスの制限] オプションの詳細については、「[データベースのプロパティ] ([オプション] ページ)」を参照してください。

[トップに戻る] リンクで使用される矢印アイコン[Top]

Transact-SQL の使用

データベースをシングル ユーザー モードに設定するには

  1. データベース エンジンに接続します。

  2. [標準] ツール バーの [新しいクエリ] をクリックします。

  3. 次の例をコピーしてクエリ ウィンドウに貼り付け、[実行] をクリックします。 この例では、排他的アクセスを取得するために、データベースを SINGLE_USER モードに設定します。 次に、 AdventureWorks2012 データベースの状態を READ_ONLY に設定し、データベースへのアクセス権をすべてのユーザーに戻します。終了オプション WITH ROLLBACK IMMEDIATE は、最初の ALTER DATABASE ステートメントで指定しています。 これですべての未完了のトランザクションがロールバックされ、 AdventureWorks2012 データベースへの他のすべての接続は直ちに解除されます。

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

[トップに戻る] リンクで使用される矢印アイコン[Top]

関連項目

参照

ALTER DATABASE (Transact-SQL)