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