本文主要是介绍服务器可能资源不足,或者不信任该程序集,因为它的 PERMISSION_SET 设置为 EXTERNAL_ACCESS 或 UNSAFE。,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
from:http://blog.sina.com.cn/s/blog_69d6a78101017hre.html
在成功还原了数据库J_DB之后,进行查询时提示错误:
在尝试加载程序集 ID 65659 时 Microsoft .NET Framework 出错。
服务器可能资源不足,或者不信任该程序集,因为它的 PERMISSION_SET 设置为 EXTERNAL_ACCESS 或 UNSAFE。
请重新运行查询,或检查有关的文档了解如何解决程序集信任问题。
有关此错误的详细信息: System.IO.FileLoadException:
未能加载文件或程序集“des, Version=0.0.0.0, Culture=neutral, PublicKeyToken=nu…………
在网上查找资料发现,原因应该是
在备份数据库的时候,在机器A,那么数据库的拥有者是A\Administrator(如果用windows登录创建),那么但是我们还原到服务器B,那么拥有者可能是B\Administrator,那么SQL CLR的安全性会认为该程序集不可靠.
按如下步骤操作即可:
1. exec sp_configure 'show advanced options', '1';
go
reconfigure;
go
exec sp_configure 'clr enabled', '1'
go
reconfigure;
exec sp_configure 'show advanced options', '1';
go
2.查SID在sys.databases 和sys.server_principals是否一致
SELECT * FROM sys.server_principals;
SELECT * FROM sys.sysdatabases ;
3.查看程序集是否存在
SELECT * FROM sys.assemblies;SELECT * FROM sys.assembly_files;
4. 修改为ON
ALTER DATABASE J_DB SET TRUSTWORTHY on;
5.注意所有者
exec sp_changedbowner 'sa'
这篇关于服务器可能资源不足,或者不信任该程序集,因为它的 PERMISSION_SET 设置为 EXTERNAL_ACCESS 或 UNSAFE。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!