一切福田,不離方寸,從心而覓,感無不通。

Category Archives: Database

把查询结果保存到文件

EXEC master..xp_cmdshell 'bcp "select top 1 txt from master.dbo.ctest " queryout c:\ctxt.vbs -c -S(local) -Usa -Phbcfsa'

龙生   18 Jun 2013
View Details

CMD下查看遠程桌面端口

很多朋友不知道怎樣在cmd下查看3389被 修改成了什麽。有時候注冊表讀其來不是太方便。、 REG query HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server\WinStations\RDP-Tcp /v PortNumber 这条命令是查看远程桌面连接所开的端口是多少 一般默认显示是0xd3d   也就是3389 。 其實兩個 常見的cmd命令就可以搞定下來· 先用tasklist /svc 图像名                       PID 服务========================= ====== =============================================System Idle Process            0 暂缺System                         4 暂缺smss.exe                     704 暂缺csrss.exe                    772 暂缺winlogon.exe                 796 […]

龙生   18 Jun 2013
View Details

10个SQL注入工具

众所周知,SQL注入攻击是最为常见的Web应用程序攻击技术。同时SQL注入攻击所带来的安全破坏也是不可弥补的。以下罗列的10款SQL注入工具可帮助管理员及时检测存在的漏洞。 BSQL Hacker 10个SQL注入工具 BSQL Hacker是由Portcullis实验室开发的,BSQL Hacker 是一个SQL自动注入工具(支持SQL盲注),其设计的目的是希望能对任何的数据库进行SQL溢出注入。 BSQL Hacker的适用群体是那些对注入有经验的使用者和那些想进行自动SQL注入的人群。BSQL Hacker可自动对Oracle和MySQL数据库进行攻击,并自动提取数据库的数据和架构。 The Mole 10个SQL注入工具 The Mole是一款开源的自动化SQL注入工具,其可绕过IPS/IDS(入侵防御系统/入侵检测系统)。只需提供一个URL和一个可用的关键字,它就能够检测注入点并利用。The Mole可以使用union注入技术和基于逻辑查询的注入技术。The Mole攻击范围包括SQL Server、MySQL、Postgres和Oracle数据库。 Pangolin 10个SQL注入工具 Pangolin是一款帮助渗透测试人员进行SQL注入(SQL Injeciton)测试的安全工具。Pangolin与JSky(Web应用安全漏洞扫描器、Web应用安全评估工具)都是NOSEC公司的产品。Pangolin具备友好的图形界面以及支持测试几乎所有数据库(Access、MSSql、MySql、Oracle、Informix、DB2、Sybase、PostgreSQL、Sqlite)。Pangolin能够通过一系列非常简单的操作,达到最大化的攻击测试效果。它从检测注入开始到最后控制目标系统都给出了测试步骤。Pangolin是目前国内使用率最高的SQL注入测试的安全软件。 Sqlmap 10个SQL注入工具 Sqlmap是一个自动SQL 注入工具。其可胜任执行一个广泛的数据库管理系统后端指纹, 检索DBMS数据库、usernames、表格、列、并列举整个DBMS信息。Sqlmap提供转储数据库表以及MySQL、PostgreSQL、SQL Server服务器下载或上传任何文件并执行任意代码的能力。 Havij 10个SQL注入工具 Havij是一款自动化的SQL注入工具,它能够帮助渗透测试人员发现和利用Web应用程序的SQL注入漏洞。Havij不仅能够自动挖掘可利用的SQL 查询,还能够识别后台数据库类型、检索数据的用户名和密码hash、转储表和列、从数据库中提取数据,甚至访问底层文件系统和执行系统命令,当然前提是有 一个可利用的SQL注入漏洞。Havij支持广泛的数据库系统,如 MsSQL, MySQL, MSAccess and Oracle。 Havij支持参数配置以躲避IDS,支持代理,后台登陆地址扫描。 Enema SQLi 10个SQL注入工具 Enema SQLi与其他 SQL注入工具不同的是,Enema SQLi不是自动的,想要使用Enema SQLi需要一定的相关知识。Enema SQLi能够使用用户自定义的查询以及插件对SQL Server和MySQL数据库进行攻击。支持基于error-based、Union-based和blind time-based的注入攻击。 SQLninja 10个SQL注入工具 SQLninja软件用Perl编写,符合GPLv2标准。SQLninja的目的是利用Web应用程序中的SQL注入式漏洞,它依靠微软的SQL Server作为后端支持。其主要的目标是在存在着漏洞的数据库服务器上提供一个远程的外壳,甚至在一个有着严格的防范措施的环境中也能如此。在一个SQL注入式漏洞被发现以后,企业的管理员特别是渗透攻击的测试人员应当使用它,它能自动地接管数据库服务器。现在市场上有许多其它的SQL注入式漏洞工具,但SQLninja与其它工具不同,它无需抽取数据,而着重于在远程数据库服务器上获得一个交互式的外壳,并将它用作目标网络中的一个立足点。 sqlsus 10个SQL注入工具 sqlsus是一个开放源代码的MySQL注入和接管工具,sqlsus使用perl编写并基于命令行界面。sqlsus可以获取数据库结构,注入你自己的SQL语句,从服务器下载文件,爬行web站点可写目录,上传和控制后门,克隆数据库等。 Safe3 SQL Injector 10个SQL注入工具 Safe3 SQL Injector是一个最强大和最易使用的渗透测试工具,它可以自动检测和利用SQL注入漏洞和数据库服务器的过程中。Safe3 SQL Injector具备读取MySQL、Oracle、PostgreSQL、SQL Server、Access、SQLite、Firebird、Sybase、SAP MaxDB等数据库的能力。同时支持向MySQL、SQL Server写入文件,以及SQL Server和Oracle中执行任意命令。Safe3 SQL Injector也支持支持基于error-based、Union-based和blind time-based的注入攻击。 SQL Poizon 10个SQL注入工具 SQL Poizon的图形界面使用户无需深厚的专业知识便能够进行攻击,SQL Poizon扫描注入工具内置浏览器可帮助查看注入攻击带来的影响。SQL Poizon充分利用搜索引擎“dorks”扫描互联网中存在SQL注入漏洞的网站。(李智/编辑) 转自:http://blog.jobbole.com/17763/

龙生   03 Jun 2013
View Details

使用PowerDesigner 15对现有数据库进行反向工程(图解教程二)

在上一篇《使用PowerDesigner 15对现有数据库进行反向工程(图解教程一)》中我们介绍了进行反向工程所需要的数据源,本文将根据建立的数据源进行E-R图生成。详细步骤如下: 1、启动PD 2、菜单:File->Reverse Engineer ->Database 出来New Physical Data Model对话框 点击“确定”按钮,弹出Database Reverse Engineering Options对话框: 在此我们选择Using a data source,点击数据源按钮弹出Connection to a Data Source对话框,在下拉框中选择我们之前建立的数据源,并输入User ID和password 点击Connection即可连接至数据库,并得取所有的数据库对象,在此我们选择所有的Table。 最后点击OK,大功告成!!,以下为部分截图:   from:https://www.cnblogs.com/oceanshare/archive/2010/02/10/1667084.html

龙生   27 May 2013
View Details

使用PowerDesigner 15对现有数据库进行反向工程(图解教程一)

由于早期的一个项目在数据库设计建立时没有输出为E-R图,偶在对此项目进行二次改造升级时则使用了PD对原有的数据库进行反向工程,即根据数据源将数据库的的所有表生成为E-R图结构,我使用的是PD 15,反向工程的命令为于“File”菜单中的"Reverse Engineer”-反向引擎。其它的版本的PD应该在”Database”菜单中。

龙生   27 May 2013
View Details

清空SQL SERVER数据库中所有指定表中数据的解决方案

我们都知道,如果是清空数据库中所有表的数据的,那比较好办,只要利用系统表sys.tables查询出数据库中所有表信息,然后再用游标循环清空就好了,附SQL语句如下:

  有关sys.tables的用法,请参考本站:利用SQL语句查询数据库中所有表  但有时候我们是要有选择性的清空某些表信息,小编最近就遇到这种情况,我只需清空小编负责的ERP系统中的所有业务流程数据,而基础信息与系统配置信息是不能被清除的,怎么办呢?为了达了快速与重复利用的目的,小编把自己的解决方案附下: 先创建一个配置表,表名为:Sys_TableExtendedProperties表字段如下:TableName-存储系统中所有表的表名IsSystem-指定表是否为系统表IsBaseInformation-指定表是否为基础数据表……其它字段,请大家根据自己的需要添加然后我们将所有表的信息添加到表中(此步骤虽然烦琐,但为了以后的快速调用,现在烦琐点也是值得的),然后,我们写一个存储过程来清空指定数据。

  现在,我们任意时候想清空指定表数据时,执行该存储过程即可。 转自:http://www.lmwlove.com/ac/ID637

龙生   18 May 2013
View Details

SQL Server 2008各版本区别

SQL Server 2008分为SQL Server 2008企业版、标准版、工作组版、Web版、开发者版、Express版、Compact 3.5版,其功能和作用也各不相同,其中SQL Server 2008 Express版是免费版本。企业版/开发版下载+安装+破解说明:SQL Server 2008正式版 下载 安装 指南 (序列号)+(破解) SQL Server 2008企业版 SQL Server 2008企业版是一个全面的数据管理和业务智能平台,为关键业务应用提供了企业级的可扩展性、数据仓库、安全、高级分析和报表支持。这一版本将为你提供更加坚固的服务器和执行大规模在线事务处理。这个是最牛B的版本。 SQL Server 2008标准版 SQL Server 2008标准版是一个完整的数据管理和业务智能平台,为部门级应用提供了最佳的易用性和可管理特性。 SQL Server 2008工作组版 SQL Server 2008工作组版是一个值得信赖的数据管理和报表平台,用以实现安全的发布、远程同步和对运行分支应用的管理能力。 这一版本拥有核心的数据库特性,可以很容易地升级到标准版或企业版。 SQL Server 2008 Web版 SQL Server 2008 Web版是针对运行于Windows服务器中要求高可用、面向Internet Web服务的环境而设计。这一版本为实现低成本、大规模、高可用性的Web应用或客户托管解决方案提供了必要的支持工具。 SQL Server 2008开发者版 SQL Server 2008开发者版允许开发人员构建和测试基于SQL Server的任意类型应用。这一版本拥有所有企业版的特性,但只限于在开发、测试和演示中使用。基于这一版本开发的应用和数据库可以很容易地升级到企业版。 SQL Server 2008 Express版 SQL Server 2008 Express版是SQL Server的一个免费版本,它拥有核心的数据库功能,其中包括了SQL Server 2008中最新的数据类型,但它是SQL Server的一个微型版本。这一版本是为了学习、创建桌面应用和小型服务器应用而发布的,也可供ISV再发行使用。 SQL Server Compact 3.5版 SQL Server Compact是一个针对开发人员而设计的免费嵌入式数据库,这一版本的意图是构建独立、仅有少量连接需求的移动设备、桌面和Web客户端应用。 SQL Server Compact可以运行于所有的微软Windows平台之上,包括Windows XP和Windows Vista操作系统,以及Pocket PC和SmartPhone设备。 转自:http://www.cnblogs.com/wallis0922/archive/2010/08/19/1803252.html

龙生   17 Mar 2013
View Details

with(nolock)详解

大家在写查询时,为了性能,往往会在表后面加一个nolock,或者是with(nolock),其目的就是查询是不锁定表,从而达到提高查询速度的目的。 什么是并发访问:同一时间有多个用户访问同一资源,并发用户中如果有用户对资源做了修改,此时就会对其它用户产生某些不利的影响,例如: 1:脏读,一个用户对一个资源做了修改,此时另外一个用户正好读取了这条被修改的记录,然后,第一个用户放弃修改,数据回到修改之前,这两个不同的结果就是脏读。 2:不可重复读,一个用户的一个操作是一个事务,这个事务分两次读取同一条记录,如果第一次读取后,有另外用户修改了这个数据,然后第二次读取的数据正好是其它用户修改的数据,这样造成两次读取的记录不同,如果事务中锁定这条记录就可以避免。 3:幻读,指用户读取一批记录的情况,用户两次查询同一条件的一批记录,第一次查询后,有其它用户对这批数据做了修改,方法可能是修改,删除,新增,第二次查询时,会发现第一次查询的记录条目有的不在第二次查询结果中,或者是第二次查询的条目不在第一次查询的内容中。 为什么会在查询的表后面加nolock标识?为了避免并发访问产生的不利影响,SQL Server有两种并发访问的控制机制:锁、行版本控制,表后面加nolock是解决并发访问的方案之一。 1> 锁,每个事务对所依赖的资源会请求不同类型的锁,它可以阻止其他事务以某种可能会导致事务请求锁出错的方式修改资源。当事务不再依赖锁定的资源时,锁将被释放。 锁的类型:1:表类型:锁定整个表;2:行类型:锁定某个行;3:文件类型:锁定某个数据库文件;4:数据库类型:锁定整个数据库;5:页类型:锁定8K为单位的数据库页。 锁的分类还有一种分法,就是按用户和数据库对象来分: 1). 从数据库系统的角度来看:分为独占锁(即排它锁),共享锁和更新锁 1:共享 (S) :用于不更改或不更新数据的操作(只读操作),一般常见的例如select语句。 2:更新 (U) :用于可更新的资源中。防止当多个会话在读取、锁定以及随后可能进行的资源更新时发生常见形式的死锁。 3:排它 (X) :用于数据修改操作,例如 INSERT、UPDATE 或 DELETE。确保不会同时同一资源进行多重更新。 2). 从程序员的角度看:分为乐观锁和悲观锁。 1:乐观锁:完全依靠数据库来管理锁的工作。 2:悲观锁:程序员自己管理数据或对象上的锁处理。 一般程序员一看到什么锁之类,觉的特别复杂,对专业的DBA当然是入门级知识了。可喜的是程序员不用去设置,控制这些锁,SQLServer通过设置事务的隔离级别自动管理锁的设置和控制。锁管理器通过查询分析器分析待执行的sql语句,来判断语句将会访问哪些资源,进行什么操作,然后结合设定的隔离级别自动分配管理需要用到的锁。 2>:行版本控制:当启用了基于行版本控制的隔离级别时,数据库引擎 将维护修改的每一行的版本。应用程序可以指定事务使用行版本查看事务或查询开始时存在的数据,而不是使用锁保护所有读取。通过使用行版本控制,读取操作阻止其他事务的可能性将大大降低。也就是相当于针对所有的表在查询时都会加上nolock,同样会产生脏读的现象,但差别在于在一个统一管理的地方。说到了基于行版本控制的隔离级别,这里有必要说下隔离级别的概念。 隔离级别的用处:控制锁的应用,即什么场景应用什么样的锁机制。 最终目的:解决并发处理带来的种种问题。 隔离级别的分类: 1:未提交读,隔离事务的最低级别,只能保证不读取物理上损坏的数据; 2:已提交读,数据库引擎的默认级; 3:可重复读; 4:可序列化;隔离事务的最高级别,事务之间完全隔离。 小结:NOLOCK 语句执行时不发出共享锁,允许脏读 ,等于 READ UNCOMMITTED事务隔离级别 。nolock确实在查询时能提高速度,但它并不是没有缺点的,起码它会引起脏读。 nolock的使用场景(个人观点): 1:数据量特别大的表,牺牲数据安全性来提升性能是可以考虑的; 2:允许出现脏读现象的业务逻辑,反之一些数据完整性要求比较严格的场景就不合适了,像金融方面等。 3:数据不经常修改的表,这样会省于锁定表的时间来大大加快查询速度。 综上所述,如果在项目中的每个查询的表后面都加nolock,这种做法并不科学,起码特别费时间,不如行版本控制来的直接有效。而且会存在不可预期的技术问题。应该有选择性的挑选最适合的表来放弃共享锁的使用。 最后说下nolock和with(nolock)的几个小区别: 1:SQL05中的同义词,只支持with(nolock); 2:with(nolock)的写法非常容易再指定索引。 跨服务器查询语句时 不能用with (nolock) 只能用nolock 同一个服务器查询时 则with (nolock)和nolock都可以用 比如 SQL code select * from [IP].a.dbo.table1 with (nolock) 这样会提示用错误select * from a.dbo.table1 with (nolock) 这样就可以 转自:http://hi.baidu.com/gabriel/item/11f32132593557c31a96961a

龙生   15 Mar 2013
View Details

MySql Error Code: 2006 – MySQL 服务器已离线

用SQLYog进行数据导入的时候出错:MySql Error Code: 2006 – MySQL 服务器已离线 解决: 1.在mysql的配置文件最后添加:max_allowed_packet = 100M 2.如果还不行,就再添加以下两行: interactive_timeout=28800000 wait_timeout=28800000

龙生   09 Mar 2013
View Details

mySQL错误: The used table type doesn’t support FULLTEXT indexes

  mySQL错误: The used table type doesn’t support FULLTEXT indexes 说明不支持全文索引 解决方法有两种,网上大多方法是: 1.打开my.ini,搜索default-storage-engine=,你搜索到的应该是 default-storage-engine=INNODB,把INNODB改成MyISAM,然后重新启动Mysql 这样所有的表都支持全文索引了。 2.如果你只想某张表具有全文索引,这只需要要把表的type改成MyISAM 具体做法如下: ALTER TABLE 表名 TYPE = MyISAM; 或者你和我一样用了navicat工具: 可以在选择-》设计表-》选项 在表类型中改成MyISAM即可。 如果大家用上述方法碰到问题,欢迎大家和我交流,我及时更正。 转自:http://www.cnblogs.com/liveandevil/archive/2012/08/10/2631601.html  

龙生   19 Feb 2013
View Details
1 14 15 16 20