51、SQLCLR 编程:从基础到高级应用

SQLCLR 编程:从基础到高级应用

1. 权限集与授权机制

在创建程序集时,涉及到权限集和授权两个重要方面。权限集通过两种不同类型的检查来实现:
- JIT 编译检查 :在程序集即时编译(JITed)时,会针对 HostProtection 属性进行检查。许多 .NET Framework 类和方法都带有此属性,在权限不足的程序集中引用它们会在 JIT 过程中引发异常。
- 运行时安全限制 :通过 .NET 的代码访问安全(CAS)基础设施在运行时强制执行。一般来说,授予 EXTERNAL_ACCESS 权限集意味着放宽安全权限并限制 CAS 强制执行;授予 UNSAFE 权限集则允许可能影响可靠性的代码,由 HostProtection 检查来执行。

授权即指定程序集的所有者。除了基本的数据库对象安全(如修改或删除程序集的能力)外,所有者对程序集的处理方式有重要影响。在给定数据库中,由同一数据库主体拥有的所有程序集将被加载到同一个 AppDomain 中,这为每组程序集提供了独立的内存沙箱,与其他程序集组完全隔离。这种设计的好处是,SQLOS 可以有针对性地启动和关闭 AppDomain ,而不影响系统的其他部分。例如,如果数据库中有两组功能不同的程序集,分别由不同主体拥有,当 SQL Server 检测到其中一个程序集存在内存泄漏代码时,只需回收受影响的 AppDomain ,另一个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值