TRUSTWORTHY データベース プロパティ
TRUSTWORTHY データベース プロパティを使用して、SQL Server インスタンスがデータベースとその内容を信頼するかどうかを示します。この設定は既定では OFF ですが、ALTER DATABASE ステートメントを使用して ON に設定できます。たとえば、ALTER DATABASE AdventureWorks SET TRUSTWORTHY ON; のようにします。
注意 |
---|
このオプションを設定するには、固定サーバー ロール sysadmin のメンバである必要があります。 |
このプロパティを使用することで、次のようなオブジェクトの 1 つが含まれているデータベースをアタッチすることによって生じる特定の脅威を軽減できます。
EXTERNAL_ACCESS 権限または UNSAFE 権限が設定された、悪意のあるアセンブリ。詳細については、「CLR 統合のセキュリティ」を参照してください。
高い特権を所持するユーザーとして実行するように定義された悪意のあるモジュール。詳細については、「EXECUTE AS の使用によるデータベースの権限借用の拡張」を参照してください。
どちらの状況でもある程度の特権が必要になり、SQL Server のインスタンスに既にアタッチされているデータベースのコンテキストで使用されるときは、適切なメカニズムによって保護されます。しかし、データベースがオフラインであれば、データベース ファイルへのアクセス権のあるユーザーは、選択した SQL Server のインスタンスにデータベースをアタッチし、悪意のあるコンテンツをデータベースに追加できます。SQL Server 2005 でデータベースがデタッチされ、再アタッチされると、データベース ファイルへのアクセスを制限する特定の権限が、データ ファイルとログ ファイルに設定されます。詳細については、「データ ファイルとログ ファイルのセキュリティ保護」を参照してください。
SQL Server のインスタンスにアタッチされるデータベースはすぐには信頼できないので、データベースが信頼できるものとして明示的に設定されるまでは、データベースはデータベースのスコープを超えてリソースにアクセスすることはできません。また、データベース外のリソースにアクセスするように設計されているモジュール、および EXTERNAL_ACCESS 権限と UNSAFE 権限のいずれかが設定されているアセンブリを正常に実行するには、追加の要件が課せられます。