TRUSTWORTHY データベース プロパティ

TRUSTWORTHY データベース プロパティを使用して、SQL Server インスタンスがデータベースとその内容を信頼するかどうかを示します。 この設定は既定では OFF ですが、ALTER DATABASE ステートメントを使用して ON に設定できます。 たとえば、ALTER DATABASE AdventureWorks2012 SET TRUSTWORTHY ON; のようにします。

注意

このオプションを設定するには、固定サーバー ロール sysadmin のメンバーである必要があります。

このプロパティを使用することで、次のようなオブジェクトの 1 つが含まれているデータベースをアタッチすることによって生じる特定の脅威を軽減できます。

  • EXTERNAL_ACCESS 権限または UNSAFE 権限が設定された、悪意のあるアセンブリ。 詳細については、「CLR 統合のセキュリティ」を参照してください。

  • 高い特権を所持するユーザーとして実行するように定義された悪意のあるモジュール。 詳細については、「EXECUTE AS 句 (Transact-SQL)」を参照してください。

どちらの状況でもある程度の特権が必要になり、SQL Server のインスタンスに既にアタッチされているデータベースのコンテキストで使用されるときは、適切なメカニズムによって保護されます。 しかし、データベースがオフラインであれば、データベース ファイルへのアクセス権のあるユーザーは、選択した SQL Server のインスタンスにデータベースをアタッチし、悪意のあるコンテンツをデータベースに追加できます。 SQL Server でデータベースがデタッチされ、再アタッチされると、データベース ファイルへのアクセスを制限する特定の権限が、データ ファイルとログ ファイルに設定されます。

SQL Server のインスタンスにアタッチされるデータベースはすぐには信頼できないので、データベースが信頼できるものとして明示的に設定されるまでは、データベースはデータベースのスコープを超えてリソースにアクセスすることはできません。 また、データベース外のリソースにアクセスするように設計されているモジュール、および EXTERNAL_ACCESS 権限と UNSAFE 権限のいずれかが設定されているアセンブリを正常に実行するには、追加の要件が課せられます。

関連コンテンツ

セキュリティと保護 (データベース エンジン)

ALTER DATABASE (Transact-SQL)