sp_certify_removable (Transact-SQL)
適用対象: SQL Server
リムーバブル メディア上でデータベースが配布用に正しく構成されているかどうか確認し、問題があればユーザーにレポートします。
重要
この機能は、 SQL Serverの将来のバージョンで削除される予定です。 新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションは修正することを検討してください。 代わりに CREATE DATABASE を使用してください。
構文
sp_certify_removable
[ @dbname = ] N'dbname'
[ , [ @autofix = ] N'autofix' ]
[ ; ]
引数
[ @dbname = ] N'dbname'
確認するデータベースを指定します。 @dbname は sysname です。
[ @autofix = ] N'autofix'
データベースとすべてのデータベース オブジェクトの所有権をシステム管理者に与え、ユーザー作成のデータベース ユーザーと既定値以外の権限を削除します。 @autofix は nvarchar(4) で、既定値は NULL
です。
リターン コードの値
0
(成功) または 1
(失敗)。
解説
データベースが正しく構成されている場合、 sp_certify_removable
は次の手順を実行します。
- ファイルをコピーできるように、データベースをオフラインに設定します。
- すべてのテーブルに関する統計を更新し、所有権やユーザーに関する問題をレポートする。
- データ ファイル グループを読み取り専用としてマークし、ファイルを読み取り専用メディアにコピーできるようにする。
システム管理者は、データベースとすべてのデータベース オブジェクトの所有者であることが必要です。 システム管理者は、SQL Server を実行しているすべてのサーバーに存在する既知のユーザーであり、データベースが後で配布およびインストールされるときに存在することが期待できます。
AUTO
値を指定せずにsp_certify_removable
を実行すると、次のいずれかの条件に関する情報が返されます。
- システム管理者はデータベース所有者ではありません。
- ユーザーが作成したすべてのユーザーが存在します。
- システム管理者は、データベース内のすべてのオブジェクトを所有しているわけではありません。
- 既定値以外の権限が与えられている。
これらの条件は、次の方法で修正できます。
- SQL Server のツールと手順を使用して、
sp_certify_removable
をもう一度実行します。 AUTO
値を使用してsp_certify_removable
を実行します。
このストアド プロシージャは、ユーザーとユーザーのアクセス許可のみをチェックします。 データベースにはグループを追加でき、そのグループに権限を与えることができます。 詳細については、「GRANT」を参照してください。
アクセス許可
実行権限は、固定サーバー ロール sysadmin のメンバーに制限されます。
例
次の例では、inventory
データベースを削除できるかどうかを確認します。
EXEC sp_certify_removable inventory, AUTO;