不安全的程序集不是 运行
Trustworthy is ON with UNSAFE assemblies not running
我只是在内部测试一些东西,现在 TRUSTWORTHY 设置为 ON 安全风险。
- 不过我想知道,如果
TRUSTWORTHY
是 ON
,如果 UNSAFE
程序集已签名并且其中有一个 .pfx
密钥文件,它会停止工作吗?
- 不确定证书是否是几年前创建的,或者证书或密钥是否会过期?
此问题涉及:A SQL CLR Assembly set to UNSAFE with a key is no longer working
如果 TRUSTWORTHY
是 ON
,则不需要模块签名。
此外,程序集不包含 .pfx 文件。 pfx 文件是一个包含私钥的 password-protected 文件。如果使用证书(或 snk / 非对称密钥)签名,程序集将包含用于验证的 public 密钥。
不,您不必担心证书的到期日期(尤其是在仅验证已签名的内容时,这就是这里发生的全部内容)。
如果您想知道程序集是否已通过 strong-name 密钥 (snk) / 非对称密钥签名,只需查看程序集属性(例如 SELECT name, clr_name FROM sys.assemblies;
)。如果“publickeytoken”(在 clr_name
中)有值(即不是“null”),则程序集已 strongly-named(即使用非对称密钥签名)。
如果您想知道程序集是否已被证书签名,只需尝试从该程序集创建证书:
CREATE CERTIFICATE [_TempTest] FROM ASSEMBLY [Microsoft.SqlServer.Types];
-- DROP CERTIFICATE [_TempTest];
如果程序集是用证书签名的,CREATE 语句将会成功。然后,删除证书。
如果程序集未使用证书签名,您将收到以下错误:
Msg 15208, Level 16, State 31, Line XXXXX
The certificate, asymmetric key, or private key file is not valid or
does not exist; or you do not have permissions for it.
请注意,可以使用非对称密钥和一个或多个证书对程序集进行签名。
我只是在内部测试一些东西,现在 TRUSTWORTHY 设置为 ON 安全风险。
- 不过我想知道,如果
TRUSTWORTHY
是ON
,如果UNSAFE
程序集已签名并且其中有一个.pfx
密钥文件,它会停止工作吗? - 不确定证书是否是几年前创建的,或者证书或密钥是否会过期?
此问题涉及:A SQL CLR Assembly set to UNSAFE with a key is no longer working
如果
TRUSTWORTHY
是ON
,则不需要模块签名。此外,程序集不包含 .pfx 文件。 pfx 文件是一个包含私钥的 password-protected 文件。如果使用证书(或 snk / 非对称密钥)签名,程序集将包含用于验证的 public 密钥。
不,您不必担心证书的到期日期(尤其是在仅验证已签名的内容时,这就是这里发生的全部内容)。
如果您想知道程序集是否已通过 strong-name 密钥 (snk) / 非对称密钥签名,只需查看程序集属性(例如
SELECT name, clr_name FROM sys.assemblies;
)。如果“publickeytoken”(在clr_name
中)有值(即不是“null”),则程序集已 strongly-named(即使用非对称密钥签名)。如果您想知道程序集是否已被证书签名,只需尝试从该程序集创建证书:
CREATE CERTIFICATE [_TempTest] FROM ASSEMBLY [Microsoft.SqlServer.Types]; -- DROP CERTIFICATE [_TempTest];
如果程序集是用证书签名的,CREATE 语句将会成功。然后,删除证书。
如果程序集未使用证书签名,您将收到以下错误:
Msg 15208, Level 16, State 31, Line XXXXX The certificate, asymmetric key, or private key file is not valid or does not exist; or you do not have permissions for it.
请注意,可以使用非对称密钥和一个或多个证书对程序集进行签名。