Sql Server 函数中执行的程序集但用户的权限不够,后DBA使用sa 账号设置了就对了
网上找到的解决方法:
这数据库是从其他数据库还原到本地数据库的,不少网友说在还原数据库之后,可以将数据库的OWNER设置成SA就可以解决
exec sp_changedbowner 'sa'
从报错信息可以看出,服务器不信任该程序集。将数据库的可信修改为true即可:
1.exec sp_configure 'show advanced options', '1';
Go
reconfigure;
go
exec sp_configure 'clr enabled', '1'
go
reconfigure; --如果执行失败,就用这个RECONFIGURE WITH OVERRIDE;
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 databasename SET TRUSTWORTHY on;
5.注意所有者
exec sp_changedbowner 'sa'