unsafe clr sql 部署向导
1.部署安全权限的简单的程序集,非常简单,只需要正常发布就行,基本可以成功,前提是账号有部署clr assembly的权限
第一步:
创建登陆账号,尽量不要使用sa吧,默认架构为:dbo即可
第二部:
开启 crl 程序集
--启动CLR
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
第三部:修改数据库的所有者,这步骤非常重要,否则就会报错,
alter database TEST2 set TRUSTWORTHY on
EXEC sp_changedbowner 'xxx'
登陆名就是所有者,同时,该数据库,下面的安全性-》用户,里面不要包含该用户名,否则,肯定无法设置为所有者
第四部:
发布程序集,我用vs2013发布,发布时,触发器很可能会提醒错误,因为无法解析对应的对象,这个问题提示你需要导入数据库架构,导入可以解决,但是这个
非常坑爹的问题是:导入数据库架构极有可能花掉很多小时的时间,这基本上是让人不能忍受。
解决办法是:
打开你的sqlprj文件,也就是项目文件:
修改里面的xml加入这段:
<SqlAssemblyName>Seeed.Yifei</SqlAssemblyName>
<IsModelAware>True</IsModelAware>
<GenerateSqlClrDdl>False</GenerateSqlClrDdl>
确切的说,这种方法不推荐使用,尽管可以生成,但是创建自动化安装脚本的时候会忽略很多程序集里面的东西,所以,还是用简单的方法吧。
如:点击项目的引用,添加数据库应用层引用
这个就是指那个.dacpac的文件,这个文件怎么来的?
可以用sqlserver2012的管理服务端,点击数据库,右击,任务,生成 里面就有
部署不安全的clr 程序集,需要做好一些工作
:use master
use master
G RA NT EXTERNAL ACCESS ASSEMBLY TO xxx
参考地址:
<a title="http://bbs.csdn.net/topics/300221762" href="http://bbs.csdn.net/topics/300221762" target="_blank">http://bbs.csdn.net/topics/300221762</a>