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

適用対象:Applies to: はいSQL ServerSQL Server (サポートされているすべてのバージョン) yesSQL ServerSQL Server (all supported versions) 適用対象:Applies to: はいSQL ServerSQL Server (サポートされているすべてのバージョン) yesSQL ServerSQL Server (all supported versions)

TRUSTWORTHY データベース プロパティを使用して、 SQL ServerSQL Server インスタンスがデータベースとその内容を信頼するかどうかを示します。The TRUSTWORTHY database property is used to indicate whether the instance of SQL ServerSQL Server trusts the database and the contents within it. この設定は既定では OFF ですが、ALTER DATABASE ステートメントを使用して ON に設定できます。By default, this setting is OFF, but can be set to ON by using the ALTER DATABASE statement. たとえば、「 ALTER DATABASE AdventureWorks2012 SET TRUSTWORTHY ON; 」のように入力します。For example, ALTER DATABASE AdventureWorks2012 SET TRUSTWORTHY ON;.


このオプションを設定するには、 sysadmin 固定サーバー ロールのメンバーである必要があります。To set this option, you must be a member of the sysadmin fixed server role.

このプロパティを使用することで、次のようなオブジェクトの 1 つが含まれているデータベースをアタッチすることによって生じる特定の脅威を軽減できます。This property can be used to reduce certain threats that can exist as a result of attaching a database that contains one of the following objects:

  • EXTERNAL_ACCESS 権限または UNSAFE 権限が設定された、悪意のあるアセンブリ。Malicious assemblies with an EXTERNAL_ACCESS or UNSAFE permission setting. 詳細については、「 CLR 統合のセキュリティ」を参照してください。For more information, see CLR Integration Security.

  • 高い特権を所持するユーザーとして実行するように定義された悪意のあるモジュール。Malicious modules that are defined to execute as high privileged users. 詳細については、「EXECUTE AS 句 (Transact-SQL)」を参照してください。For more information, see EXECUTE AS Clause (Transact-SQL).

どちらの状況でもある程度の特権が必要になり、 SQL ServerSQL Serverのインスタンスに既にアタッチされているデータベースのコンテキストで使用されるときは、適切なメカニズムによって保護されます。Both of these situations require a specific degree of privileges and are protected against by appropriate mechanisms when they are used in the context of a database that is already attached to an instance of SQL ServerSQL Server. しかし、データベースがオフラインであれば、データベース ファイルへのアクセス権のあるユーザーは、選択した SQL ServerSQL Server のインスタンスにデータベースをアタッチし、悪意のあるコンテンツをデータベースに追加できます。However, if the database is taken offline, a user that has access to the database file can potentially attach it to an instance of SQL ServerSQL Server of his or her choice and add malicious content to the database. SQL ServerSQL Serverでデータベースがデタッチされ、再アタッチされると、データベース ファイルへのアクセスを制限する特定の権限が、データ ファイルとログ ファイルに設定されます。When databases are detached and attached in SQL ServerSQL Server, certain permissions are set on the data and log files that restrict access to the database files.

SQL ServerSQL Server のインスタンスにアタッチされるデータベースはすぐには信頼できないので、データベースが信頼できるものとして明示的に設定されるまでは、データベースはデータベースのスコープを超えてリソースにアクセスすることはできません。Because a database that is attached to an instance of SQL ServerSQL Server cannot be immediately trusted, the database is not allowed to access resources beyond the scope of the database until the database is explicitly marked trustworthy. そのため、TRUSTWORTHY オプションをオンにしているデータベースをバックアップするか、デタッチするとき、同じか別の SQL Server インスタンスにそのデータベースをアタッチまたは復元する場合、アタッチ/復元の完了時に TRUSTWORTHY プロパティがオフに設定されます。Therefore, if you backup or detach a database that has the TRUSTWORTHY option ON and you attach or restore the database to the same or another SQL Server instance, the TRUSTWORTHY property will be set to OFF upon attach/restore completion. また、データベース外のリソースにアクセスするように設計されているモジュール、および EXTERNAL_ACCESS 権限と UNSAFE 権限のいずれかが設定されているアセンブリを正常に実行するには、追加の要件が課せられます。Also, modules that are designed to access resources outside the database, and assemblies with either the EXTERNAL_ACCESS and UNSAFE permission setting, have additional requirements in order to run successfully.

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