数据库登录身份验证方式有两种

 

 

其中服务器名称即为安装SQLServer2008的电脑,充当数据库服务器,在笔者这里就是自己的电脑名称。

身份验证方式有两种:windows身份验证和SQLServer身份验证。对于选用windows身份验证,登录时不需要输入密码,登录者是这台电脑的用户;SQLServer身份验证登录需要输入用户名和密码,而sa用户是数据库服务器默认的sqlserver身份登陆者。服务器角色sysadmin是具有最大权限的角色,该角色对任何用户创建的数据库都可以浏览和修改。

  1. //创建windows身份验证登录的用户
  2. create login [DESKTOP-T2FR3H7\Administrator] from windows;

下面讨论如何在eclipse中通过jdbc连接数据库,分别采用windows身份和sqlserver身份。

1 正确导入sqljdbc.jar包到项目工程的build path目录下,此时会看到.jar下面有两个子包com.microsoft.sqlserver.jdbc包和microsoft.sql包,而SQLServerDriver驱动类就在第一个子包下面


2 采用SQLServer身份登录连接数据库服务器代码如下

  1. public
    static
    void method1()
  2.    {
  3.       try {
  4.          Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); //将数据库驱动器类加载到jvm中
  5.       } catch (ClassNotFoundException e) {
  6.          e.printStackTrace();
  7.       }
  8.        String dbURL="jdbc:sqlserver://localhost:1433;DatabaseName=aa";//数据库连接地址
  9.        try {
  10.          Connection conn=DriverManager.getConnection(dbURL,"");//需要输入登录用户名和登录密码
  11.          System.out.println("Connection Successful!");
  12.        } catch (SQLException e) {
  13.          e.printStackTrace();
  14.       }
  15.    }

3 采用windows身份验证登录

需要做额外工作,且dbURL为"jdbc:sqlserver://localhost:1433;integratedSecurity=true;databasename=aa"

//integratedSecurity 身份验证方式,当为true时将使用当前的windows用户账户凭据进行身份验证;当为false时,在连接中指定用户ID和密码

代码如下

  1. public
    static
    void method2()
  2.    {
  3.       try {
  4.          Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
  5.       } catch (ClassNotFoundException e) {
  6.          e.printStackTrace();
  7.       }
  8.        String dbURL="jdbc:sqlserver://localhost:1433;integratedSecurity=true;DatabaseName=aa";
  9.        try {
  10.          Connection conn=DriverManager.getConnection(dbURL);
  11.          System.out.println("Connection Successful!");
  12.        } catch (SQLException e) {
  13.          e.printStackTrace();
  14.       }
  15.    }

出现这种情况报错是因为第一次使用继承身份验证方式,需要做一些额外工作。

1 将sqljdbc_auth.dll文件复制到C:/windows/system32目录下

2为保险起见, 同时也复制到jdk/bin目录下(jre/bin目录下也需要复制一份)

Sqljdbc_auth.dll文件在sqljdbc\chs\auth\x64目录下 x86代表计算机是32位,x64代表计算机是64位,应该根据自己电脑的情况灵活选择。

Eclipse通过jdbc连接sqlserver2008数据库的两种方式的更多相关文章

  1. python连接redis数据库的两种方式

    代码: # __author__ = 'STEVEN' import redis # 方式1,直接连接 # r = redis.Redis(host='192.168.43.22',port=6379 ...

  2. C++连接mysql数据库的两种方法

    本文主要介绍了C++连接mysql数据库的两种方法,希望通过本文,能对你有所帮助,一起来看. 现在正做一个接口,通过不同的连接字符串操作不同的数据库.要用到mysql数据库,以前没用过这个数据库,用a ...

  3. python学习--python 连接SQLServer数据库(两种方法)

    1. python 学习.安装教程参照: http://www.runoob.com/python/python-tutorial.html 2. 集成开发环境 JetBrains PyCharm C ...

  4. .Net 中读写Oracle数据库常用两种方式

    .net中连接Oracle 的两种方式:OracleClient,OleDb转载 2015年04月24日 00:00:24 10820.Net 中读写Oracle数据库常用两种方式:OracleCli ...

  5. plsql 连接oracle数据库的2种方式

      plsql 连接oracle数据库的2种方式 CreationTime--2018年8月10日09点50分 Author:Marydon 方式一:配置tnsnames.ora 该文件在instan ...

  6. Android开发之使用sqlite3工具操作数据库的两种方式

    使用 sqlite3 工具操作数据库的两种方式 请尊重他人的劳动成果,转载请注明出处:Android开发之使用sqlite3工具操作数据库的两种方式 http://blog.csdn.net/feng ...

  7. springmvc和servlet在上传和下载文件(保持文件夹和存储数据库Blob两种方式)

    参与该项目的文件上传和下载.一旦struts2下完成,今天springmvc再来一遍.发现springmvc特别好包,基本上不具备的几行代码即可完成,下面的代码贴: FileUpAndDown.jsp ...

  8. Django框架操作数据库的两种方式

    Django操作数据库的前提操作是成功连接数据库,详情见上篇:https://www.cnblogs.com/kristin/p/10791358.html Django查询数据库的方式一 from ...

  9. Eclipse通过JDBC连接MySQL数据库的步骤(最原始的几个步骤)

    java可以兼容目前市面上所有类型的数据库,主要是因为提供了两个接口,一个用于连接目标数据库,一个用于向数据库中传输SQL命令. Connection接口——连接目标数据库: Statement  接 ...

随机推荐

  1. banner无缝滚动动画,支持左右按钮和小点

    HTML: <div class="box"> <ul> <li class="img_cur" > <a href= ...

  2. 泛型集合List(C#)

    using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace List ...

  3. js(=>) 箭头函数 详细解说 案例大全

    ES6标准新增了一种新的函数:Arrow Function(箭头函数). 为什么叫Arrow Function?因为它的定义用的就是一个箭头: x => x * x 上面的箭头函数相当于: fu ...

  4. parted分区工具用法

    parted分区工具用法 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 随着生产环境中数据量的增大,我们对硬盘的容量也有很大的需求,当硬盘的容量大于2T(工业上的最大磁盘2.2TB ...

  5. JavaSE学习总结(十八)—— 多线程

    多线程(英语:multithreading),是指从软件或者硬件上实现多个线程并发执行的技术.具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能.具有这种能力的系 ...

  6. Neural Networks and Deep Learning 课程笔记(第三周)浅层神经网络(Shallow neural networks)

    3.1 神经网络概述(Neural Network Overview ) (神经网络中,我们要反复计算a和z,最终得到最后的loss function) 3.2 神经网络的表示(Neural Netw ...

  7. linux4.10.8 内核移植(三)---裁剪内核

    一.裁剪内核 1.1 第一次修改 现在的内核大小为2.8M左右,要裁剪到2.0M以下,毕竟给内核分区就只有2.0M. 这两个设备我们没有,裁剪掉. 进入make menuconfig中,搜索mouse ...

  8. 20155331 2016-2017-2 《Java程序设计》第七周学习总结

    20155331 2016-2017-2 <Java程序设计>第七周学习总结 教材学习内容总结 一.认识Lambda语法 1.Lambda语法概览 Arrays的sort()方法可以用来排 ...

  9. Java SE关键字-static

    一. static代表着什么 在Java中并不存在全局变量的概念,但是我们可以通过static来实现一个“伪全局”的概念,在Java中static表示“全局”或者“静态”的意思,用来修饰成员变量和成员 ...

  10. 公共模块定义/草案(Common Module Definition / draft - CMD草案)

    This specification addresses how modules should be written in order to be interoperable in browser-b ...