神奇的SQL事件探查器,你可知道?
因开发中的项目基于第三方公司开发的项目,数据库都是直接的依赖关系,而且也不知道那公司开发的项目源码和数据库表之间的关系,安装的过程中也是我从未所见的“流氓”(具体可以参见你见到过垄断主义的软件吗? )。因此首先遇到的问题是分析它的数据库结构以及它的软件到底对数据库进行了什么样的操作?故通过朋友的介绍,发现了SQL事件探查器的确是一个跟踪SQL语句执行的好工具,这里我分享给大家:
SQL事件探查器是SQL Server提供的一个图形工具,通过该工具主要可以实现如下功能:(摘录如下)
1、监视SQL Server实例的性能。
2、调试Transact-SQL语句和存储过程。
3、识别执行慢的查询。
4、在工程开发阶段,通过单步执行语句测试SQL语句和存储过程,以确认代码按预期运行。
5、通过捕捉生产系统中的事件并在测试系统中重播它们来解决SQL Server中的问题。这对测试和调试很有用,并使得用户可以不受干扰地继续使用生产系统。
6、审核和复查在SQL Server实例中发生的活动。这使得安全管理员得以复查任何的审核事件,包括登录尝试的成功与失败,以及访问语句和对象的权限成功与失败。
需要注意的是:运行SQL 事件探查器时,必须确保系统至少有10MB的可用空间,否则SQL 事件探查器的所有功能都将停止。
我们可以看到这个SQL的事件探查器的确很强大,SQL Server里面的执行的每一个动作,都可以在SQL事件探查器里看的一清二楚,这对于性能调剂,后期维护等等都是有非常大的帮助的。但是,问题也就来了,在你的软件开发完毕后,作为软件的开发方而言并不希望使用软件的使用者通过SQL事件探查器来跟踪SQL语句。那么这种情况该怎么办呢?有没有什么办法不能让SQL事件探查器跟踪到呢?
下面我们来探索这个问题:
假设你数据库里面有一张表:Organization,里面有一个字段是password,那么当你执行下面的SQL语句的时候:
那么你会吃惊的发现,在SQL事件探查器里面显示如下内容:
— 在该事件文本中找到“password”。
— 出于安全原因,已用该注释替换此文本。
这样,就看不到你执行的SQL语句的内容了。
但是,你可以会说,如果在我的Organization里面没有password字段的话还不是要显示出来?确认如此,但是官方介绍说:只要在查询的过程中,任意地方出现关键词:password,encryption,sp_setapprole之一,整个查询过程都将被隐藏,任意地方,当然也包括注释中。例如执行下面的语句:
/*保护SQL语句*/
SELECT 1 FROM [Organization1]
同样的我们在SQl事件探查器里面看到的是:
总结:
这样就很清楚的明白:如果要避免SQL语句在SQL事件探查器里面被跟踪的话,只需要添加一个关键词的注释就可以把SQL语句保护起来了。
可喜的是,我开发的系统所依赖的第三方系统软件并没有对此SQL语句做保护,故可以通过SQL事件探查器分析软件对数据库进行了那些操作,进一步分析数据库表的结构。
可以想象一下如果软件中的SQL语句都做了保护的话,如果只能过产品或者发布好的软件要来分析数据库表的结构是何等的困难?
微软发布SQL Server 2008 SP2 官方下载
微软宣布SQL Server 2008 SP2开发下载,用户可以从微软下载中心获取SP服务包和功能包升级。SP2主要包括一些兼容性功能,帮助实现与SQL Server 2008 R2的兼容,还包括一些基于SQL Server社区用户反馈的产品改进,以及SP1以来的所有补丁。
SQL Server 2008 SP2 新增功能如下:
— SQL Server实用工具在部署PS2后,可使用实用工具控制点将SQL Server 2008数据库引擎实例注册为SQL Server的托管实例。
— 数据层应用程序(DAC)
安装SP2后,SQL Server 2008数据库引擎的实例支持所有DAC操作。用户可以部署、升级、注册、提取和删除DAC。SP2不会升级SQL Server 2008客户端工具来支持DAC,若要执行DAC操作,应运用SQL Server 2008 R2客户端工具(例如SQL Server Management Studio)。
数据层应用程序是一个包含由应用程序使用的所有数据库对象和实例对象的实体。DAC提供一个单元来创作、部署和管理数据层对象。
— SharePoint集成模式下的Reporting Services
SQL Server 2008 SP2提供了关于Reporting Services与SharePoint 2010集成方面的更新。Microsoft SQL Server 2008 SP2还提供用于SharePoint 2007产品的新的外接程序。这个新的外接程序支持将SharePoint 2007技术与SQL Server 2008 R2报表服务器集成。
— 15K分区的改进
SQL Server 2008 SP2在企业版本、开发者版本和评估版本中引用了在表和索引中最多支持15000个分区的功能。
官方下载SQL Server 2008 SP2:
http://www.microsoft.com/downloads/details.aspx?FamilyID=8fbfc1de-d25e-4790-88b5-7dda1f1d4e17&displayLang=zh-cn
SQL Server 2008 SP2精简版:
http://www.microsoft.com/downloads/details.aspx?FamilyID=40acf55f-0715-4bb0-9735-d02fc2c8a7af&displayLang=zh-cn
SQL Server 2008 SP2功能包:
http://www.microsoft.com/downloads/details.aspx?FamilyID=1b2bd555-cb5b-47b9-88c7-3f89f3b43779&displayLang=zh-cn
SQL Server为何仍占据了数据库市场的主导地位
BZ Research的年度数据库与数据存取、综合研究报告表明,微软的SQL Server仍然是数据库市场上遥遥领先的No.1,截至今年6月底有74.7%的企业都在使用它。虽然这一数据比去年7月的76.4%略有下滑,但依然远远高于竞争对手。
BZ Research是在6月下半月对686名软件开发主管进行调查后得出上述结论的。
除了SQL Server,Oracle的使用率从51.3%升至54.5%、Access从56.1%降至54.4%、MySQL从38.5%升至43.4%、 IBM DB2从20.4%升至23.5%、PostgreSQL从11.6%降至11.4%,除此之外的其他数据库软件均不足10%。
另外,主管们还被问到了最近完成的项目使用的是何种数据库软件的问题,结果有51.0%的使用了SQL Server,接下来分别是Orale占37.1%、MySQL占20.7%、Access占14.9%、DB2占12.5%、PostgreSQL占 4.2%,其余均不足3%。与使用率统计基本一致。
至于为什么如此选择,有45.9%的人给出的理由是“很熟悉这种数据库”,其他原因还有“功能较多且运行稳定”(21.3%)、“开发成本最低”(20.1%)、“部署成本最低”(18.6%)、“授权许可要求”(17.1%)、“特定应用需要”(15.3%)。
一名微软用户评论说:“有了ADO.NET,SQL Server现在要比Oracle好用得多。如果Oracle也能做到这一点,也许我们会在未来考虑更多地使用它。”
也有人认为:“Oracle在配置和运行方面都很麻烦,而SQL Server只是另一个工具,而且与Visual Studio紧密集成。”
还有的被调查者表示:“SQL Server完全能够满足我们的需要,对管理员来说很容易使用,与Visual Studio的配合很好,在x86服务器上运行顺利。这是我们(企业)内部部署的普遍标准。我们的很多第三方合作厂商也在用它。”
当然也不是每个人都很欣赏SQL Server:“我们是一家大型企业,而Oracle事实上就是用于企业计算的标准,还有IBM DB2。微软的SQL Server我们也在用,但它不是工业标准。”
有时候要看具体情况了:“我们开发J2EE和.NET程序。在中小型客户里,SQL Server到处都是,但大型客户选择了Oracle。在卖软件的时候,我们需要根据客户需求部署数据库。”
“MySQL也已经开始作为Oracle的实验性替代品了。”
Sybase也没有被忘记。有说好的:“Sybase仍然是华尔街上的现行标准。”也有批评的:“希望Sybase能尽快增加类似于MySQL的功能,扩展T-SQL,并尽快加入其他数据库普遍提供的功能,不然我们可能就会抛弃它。”
SQL Server 2008 新特性
SQL Server 2008不仅对原有性能进行了改进,还添加了许多新特性,比如新添了数据集成功能,改进了分析服务,报告服务,以及Office集成等等。
SQL Server集成服务
SSIS(SQL Server集成服务)是一个嵌入式应用程序,用于开发和执行ETL(解压缩、转换和加载)包。SSIS代替了SQL 2000的DTS。整合服务功能既包含了实现简单的导入导出包所必需的Wizard导向插件、工具以及任务,也有非常复杂的数据清理功能。SQL Server 2008 SSIS的功能有很大的改进和增强,比如它的执行程序能够更好地并行执行。在SSIS 2005,数据管道不能跨越两个处理器。而SSIS 2008能够在多处理器机器上跨越两个处理器 。而且它在处理大件包上面的性能得到了提高。SSIS引擎更加稳定,锁死率更低。
Lookup功能也得到了改进。Lookup是SSIS一个常用的获取相关信息的功能。比如从CustomerID查找Customer Name,获取数据集。Lookup在SSIS中很常见,而且可以处理上百万行的数据集,因此性能可能很差。SQL 2008对Lookup的性能作出很大的改进,而且能够处理不同的数据源,包括 ADO.NET,XML,OLEDB和其他SSIS压缩包。
SQL 2008可以执行TSQL的MERGE命令。用MERGE命令,只需一个语句就可以对行进行 UPDATE、INSERT或 DELETE。下面的例子就是如何用MERGE命令来把新的Inventory Item descriptions 列表插入已有的Inventory Master中。除了 descriptions, NewInventory表格中还加入了其他一些部分。如果没有MERGE语句,就需要执行两个命令才能完成。第一个命令查找匹配的Description然后更新。第二个命令查找不匹配项然后插入。有了MERGE,一个语句就可以完成这两个任务。步骤如下:
以下是引用片段:
MERGE InventoryMaster AS im
USING (SELECT InventoryID, Descr FROM NewInventory) AS src
ON im. InventoryID = src. InventoryID
WHEN MATCHED THEN
UPDATE SET im.Descr = src.Descr
WHEN NOT MATCHED THEN
INSERT (InventoryID, Descr) VALUES (src. InventoryID, src.Descr);
分析服务
SSAS(SQL Server分析服务)也得到了很大的改进和增强。IB堆叠做出了改进,性能得到很大提高,而硬件商品能够为Scale out管理工具所使用。Block Computation也增强了立体分析的性能。
报表服务
SSRS(SQL Server 报表服务)的处理能力和性能得到改进,使得大型报表不再耗费所有可用内存。另外,在报表的设计和完成之间有了更好的一致性。 SQL SSRS 2008还包含了跨越表格和矩阵的TABLIX。 Application Embedding 允许用户点击报表中的 URL链接调用应用程序。
Microsoft Office 2007
SQL Server 2008能够与 Microsoft Office 2007完美地结合。例如,SQL Server Reporting Server能够直接把报表导出成为Word文档。而且使用 Report Authoring工具,Word和Excel都可以作为SSRS报表的模板。Excel SSAS新添了一个数据挖掘插件,提高了其性能。
资料来源:学网(www.xue5.com),原文地址:http://www.xue5.com/itedu/200803/159333.html
SQL Server连接DB2
不同数据库平台的互连一般称之为数据库的异构服务,现在各大数据库之间都可以实现这样的异构互连,只是各厂商的具体实现技术不一样,如:在SQL SERVER里面叫做LINKED SERVER,通过ODBC实现与其它数据库的互联。
不同数据库平台的互连一般称之为数据库的异构服务,现在各大数据库之间都可以实现这样的异构互连,只是各厂商的具体实现技术不一样,如:在SQL SERVER里面叫做LINKED SERVER,通过ODBC实现与其它数据库的互联。
本文的测试环境为:
操作系统: WINDOWS2000 SERVER (繁体系统)
安装数据库: SQLSERVER2000(英文版)和DB2 7.2客户端(英文版)
具体实现步骤:
1.要求pc机上安装DB2客户端软件和sqlserver2000软件。
2.配置windows的ODBC数据源:
开始菜单—》程式集—》系统管理工具—》资料数据源(ODBC)—》进入配置用户DSN或者系统DSN均可以:添加—》选择IBM DB2 ODBC DRIVER—》自定义数据源名称(随意如: DB2TEST)—》数据库名称(必选!)—》OK完成。
3. 选择刚才配置的数据源名称, 再选择 配置, 跳出DB2 MESSAGES:
The data source is not connected. Connecting to the data source will provide useful information during configuration. Would you like to connect to the data source?
选择YES(OK或确认)即可
进入CONNECT TO DB2 DATABASE画面:
USER ID: 输入DB2 DATABASE的用户
PASSWORD: 输入DB2 DATABASE的用户的密码
CONNECTION MODE: 可以选择默认的SHARE模式
选择OK(确认)即可!
配置和测试ODBC完成!
4.配置sqlserver2000中的连接服务器:
企业管理器—》安全性—》DB2连接服务器—》右键新建连接服务器—》定义连接名称; 选其他数据源; 指定程序名称为:IBM OLE DB Provider for DB2 SERVERS; 产品名称可不填; 数据源指定刚才ODBC中定义好的数据源名称; 提供程序字符串按以下格式填写:
User ID=username;Password=userpasswd(或者按如下格式:UID=username;PWD=userpasswd),这里的用户名和密码对应所要连接的DB2数据库中的用户名和密码 —》 安全性标签页里:设置用此安全上下文进行,并录入DB2的数据库用户名和密码—》服务器选项标签页可默认—》确定。
5.准备工作全部完成!在sqlserver企业管理器—》安全性—》DB2连接服务器打开刚建好的连接服务器—》点击表,即可在右边窗口看到该DB2数据库用户拥有的的所有表名,但在这里还并不能查看表的记录,这个需要在sqserver的查询分析器中用具体sql实现!访问表时,使用格式为: [连接服务器名]..[DB2用户].[表名]。更详细具体的使用这里不再赘述。
资料来源:学网(www.xue5.com),原文地址:http://www.xue5.com/itedu/201008/435630.html
SQL Server 2008远程连接
sql server 2008默认是不允许远程连接的,sa帐户默认禁用的,如果想要在本地用SSMS连接远程服务器上的SQL Server 2008,需要做两个部分的配置:
1,SQL Server Management Studio Express(简写SSMS)
2,SQL Server 配置管理器/SQL Server Configuration Manager(简写SSCM)
有两点要注意:
1,2005的外围应用配置器在2008中换了地方
2,有些设置生效需要重启一下SQL Server
step 1: 打开SSMS,用windows身份连接数据库,登录后,右键选择“属性”
step 2: 左侧选择“安全性”,选中右侧的“SQL Server 和 Windows 身份验证模式”以启用混合登录模式
step 3: 选择“连接”,勾选“允许远程连接此服务器”,然后点“确定”
step 4: 展开“安全性”->“登录名”->“sa”,右键选择“属性”
step 5: 左侧选择“常规”,右侧选择“SQL Server 身份验证”,并设置密码
step 6: 选择“状态”,选中“启用”,点击“确定”
step 7: 右击数据库选择“方面”
step 8: 将“RemoteAccessEnabled”属性设为“True”,点“确定”
step 9: 至此SSMS已设置完毕,先退出,再用sa登录,成功即表示sa帐户已经启用
step 10: 下面开始配置SSCM,选中左侧的“SQL Server服务”,确保右侧的“SQL Server”以及“SQL Server Browser”正在运行
step 11: 以下为英文版本界面。如图:右侧的TCP/IP默认是“Disabled”,双击打开设置面板将其修改为“Enabled”
step 12: 选择“IP Addersses”选项卡,设置端口“1433”
step 13: 如图将"Client Protocols"的"TCP/IP"也修改为“Enabled”
step 14: 配置完成,重新启动SQL Server 2008。
此时应该可以使用了,但是还是要确认一下防火墙。
SQL Server 2005/2008 Express安装以后,默认情况下是禁用远程连接的。如果需要远程访问,需要手动配置。
打开防火墙设置。将SQLServr.exe(C:Program FilesMicrosoft SQL ServerMSSQL10.SQLEXPRESSMSSQLBinnsqlservr.exe)添加到允许的列表中。
- 默认分类(20)
- J2EE(25)
- Java(56)
- PHP(55)
- SEO(10)
- 网页设计(20)
- 网站建设(37)
- 数据库(7)
- JavaScript(17)
- JQuery(6)
- MySQL(20)
- SQL Server(6)
- Access(1)
- Oracle(6)
- office(6)
- Dreamweaver(4)
- Photoshop(12)
- Flash(9)
- Fireworks(13)
- CSS(14)
- HTML(4)
- .NET(7)
- ASP(2)
- DB2(1)
- Ajax(2)
- Linux(12)
- Struts(7)
- Hibernate(8)
- Spring(2)
- Jsp(22)
- Asp(8)
- C#(3)
- C++(1)
- 网络安全(5)
- 软件工程(7)
- XML(1)
- English(2)
- 计算机等级考试(2)
- 计算机病毒(4)
- 个人日志(76)
- 互联网(15)
- ActionScript(10)
- Android(3)
- 数据结构与算法(1)
- 游戏策略(3)
- 美文翻译(2)
- 编程开发(19)
- 计算机应用(4)
- 计算机(10)
- Unity3d(6)
- 其他(1)
- egret(1)