11 6
刚看到一篇文章,学到几个有用的SQL Server小技巧,LOG一下:
1、DBCC CHECKIDENT 可以还原一个表的自增列值;
2、TRUNCATE TABLE 可以清空一个表的内容,优点是比DELETE FROM快,而且可以自动DBCC CHECKIDENT。
10 6
最近在做一个ASP项目,才真正开始了解SQL注入,以前只听说SQL注入在ASP等一些Web程序中比较普遍,但真正了解并仔细研究后,才发现它是一种 编码中出现的不安全漏洞,不光是ASP,所有开发工具和数据库,所有C/S、B/S编写的程序都可能发生SQL注入,包括VB、Delphi、C#、 JAVA、SQL Server、Oracle等。
SQL注入漏洞是开发人员不注重自己程序的安全性所造成的,说白了也是开发人员技术水平的一个体现,平常总听说“安全性”,感觉离自己很遥远,其实软件的安全性就在我们身边。
该好好检查检查自己的程序了,让防范SQL注入成为自己编写数据库程序的一个习惯!
以下是最近浏览的一些SQL注入和数据库安全性方面的文章,都出自微软,介绍得较为全面,非常值得一读:
SQL Injection (資料隱碼)– 駭客的 SQL填空遊戲 (Microsoft TaiWan)
『資料隱碼』SQL Injection的源由與防範之道 (Microsoft TaiWan)
构建安全的数据访问 (Microsoft China TechNet)
数据访问安全性 (Microsoft China TechNet)
数据访问安全性 (Microsoft China MSDN)
保证数据库服务器的安全 (Microsoft China TechNet)
10 6
数 据库操作现在是项目开发的根本,学习Java首先应该学会怎么样连接数据库,用Java连接数据库可不像用Delphi这类工具那样设几个属性就OK,说 简单也简单,说复杂,其实也挺复杂的,而且很麻烦,如果是初学,根本不能保证第一次就连接成功,下面以SQL Server 2000为例,说说Java连接数据库的基本方法,也记录一下心得。
1、下载SQL Server 2000 driver for JDBC
SQL Server 2000 Driver For JDBC Downloads
该驱动截止目前有四个版本,建议下载最新的SP3版。
该驱动安装成功后,请将安装目录下的lib目录下的三个.jar文件加到CLASSPATH中;如果你使用的是JBuilder或Eclipse,将这三个文件根据IDE的提示加到工程中也可。
2、升级你的SQL Server 2000,为其打上最新的补丁。
这一步可能不是必需的,因操作系统环境而定,在不打补丁的情况,有时可以正常连接,有时却不能,所以建议还是安装最新的SQL Server 2000补丁(SP4)和JDBC驱动(SP3)。
如果你的程序在运行时提示:Error establishing socket,一般情况下,打上SQL Server 2000的补丁就可解决。
3、驱动的加载方法
在建立连接之前,要先加载SQL Server 2000 JDBC的驱动,代码形式如下:
Class.forName(”com.microsoft.jdbc.sqlserver.SQLServerDriver”);
在此注意,forName方法的参数字符串必须完全相同于以上内容,大小写是区分的,其实这个串就是驱动类的完整名称:包名+类名。
4、获得一个连接
在操作数据库之前,要先获得与数据库的一个连接,使用如下代码格式:
DriverManager.getConnection(连接字符串, 登录用户名, 登录密码);
例:
DriverManager.getConnection(”jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=pubs”, “sa”, “”);
在此处关键的是连接字符串的内容,localhost部分即服务器的名字,可以更改;1433部分为SQL Server使用的端口号,根据实际情况修改即可;DatabaseName即为要连接的数据库的名字,在此注意DatabaseName之前的是分号, 而不是冒号。
5、代码实例
6、可能出现的问题
如果以上的代码运行后,输出”Connection Successful!”,那就代表一切正常,连接数据库成功,你可以进行Statement、ResultSet的操作了;反之的话,一定是出现了相应的异常。
如果提示错误”Error establishing socket”,请根据之前的说明安装相应的SQL Server 2000补丁即可。
如果提示”ClassNotFoundException”,那一定是 Class.forName(”com.microsoft.jdbc.sqlserver.SQLServerDriver”); 该段代码拼写有误,或者是SQL Server 2000 Driver For JDBC Lib目录下的三个.jar文件未加入到CLASSPATH中。