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

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

Note

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

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

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

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

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

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

SQL Server データベース エンジンと Azure SQL Database のセキュリティ センター

ALTER DATABASE (Transact-SQL)