SQL Server 2005新特性探索:从 varchar(max) 到 CLR

需积分: 31 6 下载量 56 浏览量 更新于2024-10-10 收藏 6KB TXT 举报
"SQL学习心得分享" 在SQL的学习过程中,有几个重要的知识点值得我们深入探讨和理解。首先,关于数据类型的优化,`varchar(max)`和`nvarchar(max)`的引入极大地提升了编程效率,它们可以处理大型字符串,简化了对CLOB类型的操作。然而,这也引出了一个问题:如何有效地分配`varchar`数据,是否可能导致大规模的碎片,以及碎片是否会影响查询效率。理解这些细节对于优化数据库性能至关重要。 其次,`varbinary(max)`取代了`image`类型,使得SQL Server的字段类型更加统一简洁。这对于处理二进制数据提供了便利。而`XML`字段类型则专门用于存储和操作XML数据,配合XQuery,可以高效地处理XML文档。尽管XQuery功能强大,但并非每个人都喜欢使用。 外键在数据库设计中的作用也不容忽视。在开发和调试阶段,尤其是OLAP环境中,外键的级联约束可以帮助维护数据的完整性和一致性。SQL Server的新版本增加了`SET NULL`和`SET DEFAULT`属性,提供了更灵活的级联选项,增强了数据库的扩展性。 在索引策略上,合理创建和使用非聚集索引可以显著提升查询速度。例如,针对经常出现在`WHERE`子句中的列创建索引,可以减少扫描行数,提高查询效率。但在插入、更新操作频繁的OLTP系统中,过多的索引可能会降低写操作的速度,因此需要权衡利弊。 另外,SQL Server 2005引入的存储过程重用和参数化查询,可以有效防止SQL注入,提高执行效率。同时,注意避免在存储过程中使用动态SQL,因为这可能导致性能下降和潜在的安全风险。 利用CLR(Common Language Runtime)集成.NET框架,SQL Server可以执行.NET代码,提高了存储过程的功能性和效率。然而,过度依赖CLR可能会增加系统的复杂性,因此需谨慎使用。 在处理大量图像或大文件时,考虑文件系统的存储而非直接存入数据库,可以减轻数据库的负担,提高整体系统的性能。 SQL Server的架构如schema、view和table的组织也对性能有影响。合理规划数据库结构,创建合适的视图,可以简化查询,提高数据访问速度。 最后,数据库的备份和恢复策略是保证数据安全的重要环节。了解不同类型的备份(如完整备份、差异备份和事务日志备份)及其应用场景,是每个数据库管理员必须掌握的知识。 镜像(Mirror)和高可用性解决方案如Always On Availability Groups,在确保业务连续性方面扮演着关键角色。正确配置这些特性可以提高SQL Server的容错能力,保证服务不中断。 SQL的学习是一个不断深入和实践的过程,理解并掌握上述知识点将有助于提升数据库管理的技能和效率。
2010-02-28 上传
一、首先你要确认你的鉴别模式: WIN NT鉴别模式呢还是混合模式,其中混合模式包括WIN NT鉴别模式和SQL SERVER 鉴别模式 实施鉴别模式的步骤 1、核实采用了可信连接 2、设置鉴别模式 3、关闭和重启MSSQLServer服务程序 4、创建WIN NT分组和用户 5、授权WIN NT分组和用户可存取SQL Server 6、为用非可信任连接的用户创建SQL Server登录帐号 二、为用户和角色分配登录帐号 三、给角色分配登录权 四、为用户和角色分配许可权限 在改进SQL Server 7.0系列所实现的安全机制的过程中,Microsoft建立了一种既灵活又强大的安全管理 机制,它能够对用户访问SQL Server服务器系统和数据库的安全进行全面地管理。按照本文介绍的步骤,你 可以为SQL Server 7.0(或2000)构造出一个灵活的、可管理的安全策略,而且它的安全性经得起考验。 一、验证方法选择 本文对验证(authentication)和授权(authorization)这两个概念作不同的解释。验证是指检验用户 的身份标识;授权是指允许用户做些什么。在本文的讨论中,验证过程在用户登录SQL Server的时候出现, 授权过程在用户试图访问数据或执行命令的时候出现。 构造安全策略的第一个步骤是确定SQL Server用哪种方式验证用户。SQL Server的验证是把一组帐户、密 码与Master数据库Sysxlogins表中的一个清单进行匹配。Windows NT/2000的验证是请求域控制器检查用户身 份的合法性。一般地,如果服务器可以访问域控制器,我们应该使用Windows NT/2000验证。域控制器可以是 Win2K服务器,也可以是NT服务器。无论在哪种情况下,SQL Server都接收到一个访问标记(Access Token)。 访问标记是在验证过程中构造出来的一个特殊列表,其中包含了用户的SID(安全标识号)以及一系列用户所 在组的SID。正如本文后面所介绍的,SQL Server以这些SID为基础授予访问权限。注意,操作系统如何构造访 问标记并不重要,SQL Server只使用访问标记中的SID。也就是说,不论你使用SQL Server 2000、SQL Server 7.0、Win2K还是NT进行验证都无关紧要,结果都一样。 如果使用SQL Server验证的登录,它最大的好处是很容易通过Enterprise Manager实现,最大的缺点在于 SQL Server验证的登录只对特定的服务器有效,也就是说,在一个多服务器的环境中管理比较困难。使用SQL Server进行验证的第二个重要的缺点是,对于每一个数据库,我们必须分别地为它管理权限。如果某个用户 对两个数据库有相同的权限要求,我们必须手工设置两个数据库的权限,或者编写脚本设置权限。如果用户数 量较少,比如25个以下,而且这些用户的权限变化不是很频繁,SQL Server验证的登录或许适用。但是,在几 乎所有的其他情况下(有一些例外情况,例如直接管理安全问题的应用),这种登录方式的管理负担将超过它 的优点。 二、Web环境中的验证 即使最好的安全策略也常常在一种情形前屈服,这种情形就是在Web应用中使用SQL Server的数据。在这 种情形下,进行验证的典型方法是把一组SQL Server登录名称和密码嵌入到Web服务器上运行的程序,比如 ASP页面或者CGI脚本;然后,由Web服务器负责验证用户,应用程序则使用它自己的登录帐户(或者是系统管 理员sa帐户,或者为了方便起见,使用Sysadmin服务器角色中的登录帐户)为用户访问数据。 这种安排有几个缺点,其中最重要的包括:它不具备对用户在服务器上的活动进行审核的能力,完全依 赖于Web应用程序实现用户验证,当SQL Server需要限定用户权限时不同的用户之间不易区别。如果你使用的 是IIS 5.0或者IIS 4.0,你可以用四种方法验证用户。第一种方法是为每一个网站和每一个虚拟目录创建一 个匿名用户的NT帐户。此后,所有应用程序登录SQL Server时都使用该安全环境。我们可以通过授予NT匿名 帐户合适的权限,改进审核和验证功能。 第二种方法是让所有网站使用Basic验证。此时,只有当用户在对话框中输入了合法的帐户和密码,IIS 才会允许他们访问页面。IIS依靠一个NT安全数据库实现登录身份验证,NT安全数据库既可以在本地服务器 上,也可以在域控制器上。当用户运行一个访问SQL Server数据库的程序或者脚本时,IIS把用户为了浏览 页面而提供的身份信息发送给服务器。如果你使用这种方法,应该记住:在通常情况下,浏览器与