sp_certify_removable (Transact-SQL)

適用対象: SQL サーバー

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

重要

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

Transact-SQL 構文表記規則

構文

sp_certify_removable
    [ @dbname = ] N'dbname'
    [ , [ @autofix = ] N'autofix' ]
[ ; ]

引数

[ @dbname = ] N'dbname'

確認するデータベースを指定します。 @dbnamesysname です。

[ @autofix = ] N'autofix'

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

リターン コードの値

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

解説

データベースが正しく構成されている場合、 sp_certify_removable は次の手順を実行します。

  • ファイルをコピーできるように、データベースをオフラインに設定します。
  • すべてのテーブルに関する統計を更新し、所有権やユーザーに関する問題をレポートする。
  • データ ファイル グループを読み取り専用としてマークし、ファイルを読み取り専用メディアにコピーできるようにする。

システム管理者は、データベースとすべてのデータベース オブジェクトの所有者であることが必要です。 システム管理者は、SQL 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;