TRUSTWORTHY 数据库属性用于指明 SQL Server 实例是否信任该数据库以及其中的内容。默认情况下,此设置为 OFF,但是可以使用 ALTER DATABASE 语句将其设置为 ON。例如,ALTER DATABASE AdventureWorks SET TRUSTWORTHY ON;
。
注意:
必须是 sysadmin 固定服务器角色的成员才能设置此选项。
此属性可用于减少附加数据库所带来的某些隐患,该数据库包含下列对象之一:
- 带有 EXTERNAL_ACCESS 或 UNSAFE 权限设置的有害程序集。有关详细信息,请参阅 CLR 集成安全性。
- 所定义的、作为高特权用户执行的有害模块。有关详细信息,请参阅使用 EXECUTE AS 扩展数据库模拟。
这两种情况均要求具有特定程度的权限,并且在已附加到 SQL Server 实例的数据库的上下文中使用这两种情况时,应采取相应的机制保护这两种情况。但是,如果数据库脱机,则对数据库文件具有访问权限的用户可能会将其附加到其选择的 SQL Server 实例,并将有害内容添加到数据库中。在 SQL Server 2005 中分离和附加数据库时,将对限制访问数据库文件的数据和日志文件设置某些权限。有关详细信息,请参阅保护数据和日志文件的安全。
因为无法立即信任附加到 SQL Server 实例的数据库,所以不允许数据库访问超出数据库范围的资源,直到数据库已显式标记为可信。此外,旨在访问数据库以外资源的模块和带有 EXTERNAL_ACCESS 或 UNSAFE 权限设置的程序集还需要其他条件才能成功运行。