加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

sql-server – 为其他数据库中的内部存储过程设置中央CLR存储过

发布时间:2020-12-31 08:31:31 所属栏目:编程 来源:网络整理
导读:我想使用我在C#CLR中开发的代码在系统上的所有数据库中使用,这样我就不必将每个代码都设置为可信并打开CLR并在每个数据库中保留一堆相同的代码. 从行政和安全的角度来看,有最好的方法吗? CLR函数非常基本,如断字符,电子邮件验证,url en / decode,base64等.我

我想使用我在C#CLR中开发的代码在系统上的所有数据库中使用,这样我就不必将每个代码都设置为可信并打开CLR并在每个数据库中保留一堆相同的代码.

从行政和安全的角度来看,有最好的方法吗? CLR函数非常基本,如断字符,电子邮件验证,url en / decode,base64等.我希望每个数据库中只有dbo模式才能访问这些函数.

>有什么简单的方法可以做到这一点吗?
>另外我不清楚CLR DLL是否嵌入,如果我移动数据库,它标记,或者我也必须移动dll.

谢谢

解决方法

在我们公司,我们有精确的设置.创建CLR程序集时,程序集的二进制表示形式存储在您创建它的数据库中.如果您在任何时间点移动数据库,这使您可以随身携带它(甚至编写脚本).

几个月前,我们的数据中心被洪水淹没 – 填满了几台装满水的服务器.当我重建它们时,我只使用了前一天晚上使用的数据库备份.到目前为止我们没有任何问题..(触摸木头!)

我不确定从安全角度来看这是否正确,但我们授予对CLR procs等访问权限的方式是在共享数据库中创建角色,然后将其他数据库中的用户添加到该角色.然后在CLR过程中授予该角色执行权.

如果CLR尝试执行访问包含在其中的数据库之外的资源之类的操作,则可能存在访问问题,但您可以在创建组件时设置组件的权限.以下链接有更多关于权限的信息,但我可以在这里解释:

http://msdn.microsoft.com/en-us/library/ms345101.aspx

我希望这对你有所帮助.

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读