TRUSTWORTHY 数据库属性用于指示 SQL Server 实例是否信任数据库及其内容。 默认情况下,此设置为 OFF,但可以使用 ALTER DATABASE 语句设置为 ON。 例如,ALTER DATABASE AdventureWorks2012 SET TRUSTWORTHY ON;。
注释
若要设置此选项,你必须是 sysadmin 固定服务器角色的成员。
此属性可用于减少由于附加包含以下对象之一的数据库而存在的某些威胁:
带有 EXTERNAL_ACCESS 或 UNSAFE 权限设置的有害程序集。 有关详细信息,请参阅 CLR Integration Security。
所定义的、作为高特权用户执行的有害模块。 有关详细信息,请参阅 EXECUTE AS 子句(Transact-SQL)。
这两种情况都需要特定的特权程度,并在已附加到 SQL Server 实例的数据库上下文中使用它们时,受相应机制的保护。 但是,如果数据库处于脱机状态,有权访问数据库文件的用户可能会将其附加到所选 SQL Server 实例,并将恶意内容添加到数据库。 在 SQL Server 中分离和附加数据库时,将对限制访问数据库文件的数据和日志文件设置某些权限。
由于附加到 SQL Server 实例的数据库不能立即受信任,因此在显式标记为可信数据库之前,不允许该数据库访问超出数据库范围内的资源。 此外,设计用于访问数据库外部资源的模块以及具有 EXTERNAL_ACCESS 和 UNSAFE 权限设置的程序集具有其他要求才能成功运行。