首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不安全的SQL程序集错误

不安全的SQL程序集错误
EN

Stack Overflow用户
提问于 2012-08-16 05:32:57
回答 2查看 825关注 0票数 0

我收到以下错误消息:

代码语言:javascript
复制
Msg 10314, Level 16, State 11, Line 1
An error occurred in the Microsoft .NET Framework while trying to load assembly id 66007. The server may be running out of resources, or the assembly may not be trusted with PERMISSION_SET = EXTERNAL_ACCESS or UNSAFE. Run the query again, or check documentation to see how to solve the assembly trust issues. For more information about this error: 
System.IO.FileLoadException: Could not load file or assembly 'powerstatregression, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The given assembly name or codebase was invalid. (Exception from HRESULT: 0x80131047)
System.IO.FileLoadException: 
    at System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)
    at System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
    at System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
    at System.Reflection.Assembly.Load(String assemblyString)

我运行这段代码,最后几行导致了问题:

代码语言:javascript
复制
ALTER DATABASE dasolPSDev SET TRUSTWORTHY ON;
GO

CREATE ASSEMBLY PowerStatRegression
AUTHORIZATION [dbo]
from 'C:\SqlDlls\PowerStatRegression.dll'
WITH PERMISSION_SET = UNSAFE
GO

CREATE PROCEDURE [dbo].[SpCreatePowerStatCorr]
    @strUID [nvarchar](4000),
    @seqId [int],
    @flagProgress [int]
WITH EXECUTE AS CALLER
AS
EXTERNAL NAME [PowerStatRegression].[StoredProcedures].[SpCreatePowerStatCorr]
GO

CREATE PROCEDURE [dbo].[SpCreatePowerStatCorrEx]
    @strUID [nvarchar](4000),
    @seqId [int],
    @flagProgress [int]
WITH EXECUTE AS CALLER
AS
EXTERNAL NAME [PowerStatRegression].[StoredProcedures].[SpCreatePowerStatCorrEx]
GO


CREATE PROCEDURE [dbo].SpCheckCollinearity
    @strUID [nvarchar](4000),
    @seqId [int],
    @flagProgress [int]
WITH EXECUTE AS CALLER
AS
EXTERNAL NAME [PowerStatRegression].[StoredProcedures].[SpCheckCollinearity]
GO


CREATE PROCEDURE [dbo].[AboutPowerStatCorrelation]
WITH EXECUTE AS CALLER
AS
EXTERNAL NAME [PowerStatRegression].[StoredProcedures].[AboutPowerStatCorrelation]
GO

--  To Test
dbo.AboutPowerStatCorrelation
GO

grant execute on SpCreatePowerStatCorr to db_executor
GO
EN

回答 2

Stack Overflow用户

发布于 2012-08-16 06:07:04

@chris在您的项目中还引用了哪些其他程序集?在自定义程序集之前,可能需要将一些其他程序集添加到sql server中,这就是导致该错误的原因。例如,如果您要引用Newtonsoft之类的东西进行JSON解析,则需要在您的程序集之前添加该程序集。

票数 0
EN

Stack Overflow用户

发布于 2013-10-07 19:26:16

当我试图加载一个针对x86 (32位)而构建的动态链接库,但Sql Server是x64时,我就遇到了这个错误,或者至少是一个非常类似的错误。该错误仅在尝试运行我注册的函数时显示...它在注册的时候没有抱怨!

将构建更改为目标“任何CPU”并重新注册程序集对我来说很管用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11977673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档