sp_certify_removable (Transact-SQL)

リムーバブル メディア上でデータベースが配布用に正しく構成されているかどうか確認し、問題があればユーザーにレポートします。

重要な注意事項重要

この機能は、将来のバージョンの Microsoft SQL Server では削除される予定です。 新しい開発作業では、この機能の使用を避け、現在この機能を使用しているアプリケーションは修正するようにしてください。代わりに CREATE DATABASE を使用することをお勧めします。

トピック リンク アイコンTransact-SQL 構文表記規則

構文

sp_certify_removable [ @dbname= ] 'dbname'
          [ , [ @autofix = ] 'auto' ]

引数

  • [ @dbname=] 'dbname'
    確認するデータベースを指定します。dbname のデータ型は sysname です。

  • [ @autofix=] 'auto'
    データベースとすべてのデータベース オブジェクトの所有権をシステム管理者に与え、ユーザー作成のデータベース ユーザーと既定値以外の権限を削除します。auto のデータ型は nvarchar(4) で、既定値は NULL です。

戻り値

0 (成功) または 1 (失敗)

説明

データベースが正しく構成されている場合、sp_certify_removable では次の処理が行われます。

  • データベースをオフラインに設定し、ファイルをコピーできるようにする。

  • すべてのテーブルに関する統計を更新し、所有権やユーザーに関する問題をレポートする。

  • データ ファイル グループを読み取り専用としてマークし、ファイルを読み取り専用メディアにコピーできるようにする。

システム管理者は、データベースとすべてのデータベース オブジェクトの所有者であることが必要です。システム管理者は、MicrosoftSQL Server が実行されているすべてのサーバー上に存在する既知のユーザーであり、後でデータベースが配布およびインストールされるときに必ず存在することを前提としています。

auto を指定せずに sp_certify_removable を実行した場合は、状況に応じて次の状態についての情報が返されます。

  • システム管理者がデータベース所有者ではない。

  • ユーザーが作成したユーザーが存在する。

  • システム管理者がデータベースのすべてのオブジェクトを所有していない。

  • 既定値以外の権限が与えられている。

これらの問題は次の方法で解決できます。

  • SQL Server のツールおよびプロシージャを使用して、sp_certify_removable を再実行する。

  • auto を指定して sp_certify_removable を実行する。

このストアド プロシージャでは、ユーザーとユーザーの権限だけがチェックされます。データベースにはグループを追加でき、そのグループに権限を与えることができます。詳細については、「GRANT (Transact-SQL)」を参照してください。

権限

実行権限は、sysadmin 固定サーバー ロールのメンバに制限されます。

次の例では、inventory データベースを削除できるかどうかを確認します。

EXEC sp_certify_removable inventory, AUTO