Sql server 我可以在SQL CLR中打开外部文件吗?

Sql server 我可以在SQL CLR中打开外部文件吗?,sql-server,tsql,sqlclr,Sql Server,Tsql,Sqlclr,我正在考虑使用SQLCLR打开一个外部文件。这可能吗?我没有尝试过,也没有意识到它的局限性 请建议1)是否可能2)这是明智的还是违背最佳实践 谢谢 是的,你完全可以!很好 但您需要使用外部访问权限集(在程序集创建查询中或在程序集属性处)定义程序集: 也适用于使用此代码,或按以下方式签名的代码: 外部访问解决了代码需要访问服务器外部资源(如文件、网络、注册表和环境变量)的情况。每当服务器访问外部资源时,它都会模拟调用托管代码的用户的安全上下文 要在SQL Server中创建外部访问或不安全程序集,

我正在考虑使用SQLCLR打开一个外部文件。这可能吗?我没有尝试过,也没有意识到它的局限性

请建议1)是否可能2)这是明智的还是违背最佳实践


谢谢

是的,你完全可以!很好

但您需要使用外部访问权限集(在程序集创建查询中或在程序集属性处)定义程序集:

也适用于使用此代码,或按以下方式签名的代码:

外部访问解决了代码需要访问服务器外部资源(如文件、网络、注册表和环境变量)的情况。每当服务器访问外部资源时,它都会模拟调用托管代码的用户的安全上下文

要在SQL Server中创建外部访问或不安全程序集,必须满足以下两个条件之一:

  • 程序集是由强名称签名或由证书签名的Authenticode。此强名称(或证书)是在SQL Server内部作为非对称密钥(或证书)创建的,并且具有具有外部访问程序集权限(对于外部访问程序集)或不安全程序集权限(对于不安全程序集)的相应登录名

  • 数据库所有者(DBO)具有外部访问程序集(对于外部访问程序集)或不安全程序集(对于不安全程序集)权限,并且数据库的Trustly database属性设置为ON

  • CREATE ASSEMBLY [BLABLABLA]
    FROM 0x4D.............
    WITH PERMISSION_SET = EXTERNAL_ACCESS