Java指定windows用户认证实现Sqlserver数据库连接
文章目录
- 简介
- 1.mybatis连接设置windows认证
- 2.新增windows用户
- 3.sqlserver 增加用户
- 4.windows server设置用户
- 5.windows登录sqlserver验证
- 6.windows认证连接sqlserver bug记录
- 总结
简介
本文主要记录 java 实现 windows用户登录sqlserver遇到的一些问题与解决方法。
系统环境如下:
jdk1.8 ,sqlserver2016, Windows Server服务器
1.sqlserver client和sqlserver服务器必须在同网段。
例如:server ip 为10.194.12.xxx 。client ip为10.194.xxx
2.client和server需用同用户名密码登录
例如: server name=wcl password=123 。client name=wcl password=123 ,后面会具体讲述配置方法;
3.在java/bin、jre/bin、C:\Windows\System32目录下添加sqljdbc_auth.dll
百度网盘下载 提取码:zlyh
官网下载:sqljdbc_auth.dll
下载解压后找到sqljdbc_6.0.8112.200_chs\sqljdbc_6.0\chs\auth\x64\sqljdbc_auth.dll
注意:可使用java -version 查看JVM, x64表示64位,x86表示32位,如果电脑是64位操作系统则复制auth下的x64文件夹的文件,如果电脑是32位操作系统则复制auth下的x86文件夹的文件
1.mybatis连接设置windows认证
设置sqlserver连接为integratedSecurity=true,表示使用当前windows用户身份验证登录sqlserver数据库,如果需要使用sqlserver用户名密码登录则设置integratedSecurity=false
// windows身份认证数据库连接
<environment id="jdt"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/><property name="url" value="jdbc:sqlserver://10.194.12.30:1433;DatabaseName=p_eoms;"/><property name="poolPingQuery" value="select now()"/><property name="poolMaximumActiveConnections" value="100"/><property name="poolMaximumIdleConnections" value="5"/><property name="poolPingEnabled" value="true"/><property name="poolPingConnectionsNotUsedFor" value="3600000"/></dataSource></environment>
2.新增windows用户
操作步骤如下:
1.右击我的电脑>管理>所有服务器>选中服务列表中的服务器右击> 计算机管理>本地用户和组>用户>更多操作新建用户>填写用户信息>点击创建。
2.选中组>选择Administrators>右击选择属性>添加>输入数据新创建用户名>点击检查名称>确认>应用>确认
2.1 具体操作示意图如下:
2.2 新建用户:
2.3 新增组成员
3.sqlserver 增加用户
1.选中数据库服务器
2.选择安全性>登录名>新建登录名>windows身份验证>输入用户名检查确认>用户映射选择 用户映射的数据库
注意:数据库添加新用户后,数据库连接失败的话,需要重启数据库再试试。
3.1 具体操作如下:新建登录名
3.2 用户映射配置,选择映射数据库
4.windows server设置用户
4.1.win + R键 打开services.msc 找到需要设置的服务,本例中设置tomcat服务
选中Apache Tomcat8.5 服务 右击 选择属性 设置登录账户,登录账户需与上面设置的数据库用户一致。
5.windows登录sqlserver验证
# 启动数据库连接程序后执行以下sql语句。
SELECTlogin_name,Count( 0 ) user_count
FROMSys.dm_exec_requests dr WITH ( nolock )RIGHT OUTER JOIN Sys.dm_exec_sessions ds WITH ( nolock ) ON dr.session_id = ds.session_idRIGHT OUTER JOIN Sys.dm_exec_connections dc WITH ( nolock ) ON ds.session_id = dc.session_id
WHEREds.session_id > 50
GROUP BYlogin_name
ORDER BYuser_count DESC
执行结果如图所示:admin_test为新建用户。
6.windows认证连接sqlserver bug记录
问题1: nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: 登录失败。该登录名来自不受信任的域,不能与 Windows 身份验证一起使用
原因:server与client ip不在同网段
问题2:用户 'NT AUTHORITY\ANONYMOUS LOGON' 登录失败
原因:未将ANONYMOUS 用户添加到Administrators组内。
问题3:没有集成身份验证配置驱动程序问题解决
原因:缺少 sqljdbc_auth.dll 文件
总结
以上就是今天要讲的内容,本文仅仅简单介绍了使用windows认证登录sqlserver实现过程中遇到的一些问题。
如果程序是通过Java -jar xxx.jar 方式运行,需要注册为服务运行的方式,才可以实现使用指定的windows用户认证方式登录sqlserver,或者使用匿名用户(ANONYMOUS )登录就不需要注册未服务了,只需要在windows用户组和sqlserver数据库添加ANONYMOUS用户即可。
Java指定windows用户认证实现Sqlserver数据库连接相关推荐
- Spring Security Oauth2 JWT 实现用户认证授权功能
Spring Security Oauth2 JWT 一 用户认证授权 1. 需求分析 1.1 用户认证与授权 什么是用户身份认证? 用户身份认证即用户去访问系统资源时系统要求验证用户的身份信息,身份 ...
- cognos java用户权限_Cognos第三方用户认证(CustomJavaProvider)
关于Cognos第三方用户认证(CustomJavaProvider)的demo网上的例子很多,当然最权威的你可以从Cognos安装的SDK中去探索,本文不详细的说明代码,主要说一下认证的处理过程,以 ...
- liunx 加入域控_让Linux使用Windows域控制器做用户认证
最近为了做一个客户的问题需要搭一套Windows AD给Linux通过winbind做认证使得Windows AD用户可以登陆Linux机器的环境.因为头一次做这样的配置,所以颇费了一番周折.下面就记 ...
- 用java进行LDAP用户登陆(用户认证)及修改密码
为什么80%的码农都做不了架构师?>>> 一.用户认证 public String execute(){Hashtable env = new Hashtable();Stri ...
- java 发送带basic认证的http post请求实例代码_图解HTTP学习笔记(八)—确认访问用户身份的认证...
某些 Web 页面只想让特定的人浏览,或者干脆仅本人可见.为达到这个目标,必不可少的就是认证功能. 一.认证 核对登录者本人才知道的信息: 密码.动态令牌.数字证书.生物认证.IC卡等 HTTP 使用 ...
- cognos java_Cognos第三方用户认证(CustomJavaProvider)
关于Cognos第三方用户认证(CustomJavaProvider)的demo网上的例子很多,当然最权威的你可以从Cognos安装的SDK中去探索,本文不详细的说明代码,主要说一下认证的处理过程,以 ...
- Java-SpringBoot:用户认证(Authentication)和用户授权(Authorization)
Java-SpringBoot-2 学习视频:B站 狂神说Java – https://www.bilibili.com/video/BV1PE411i7CV 学习文档: 微信公众号 狂神说 –htt ...
- 为 Windows 用户准备的简明 Linux 词汇表
Linux 白皮书 本词汇表简明地解释了 Linux 产品常用的许多术语.首字母缩写词和缩写的意思和意义. 关于本词汇表 对于初涉 Linux 世界的 Microsoft Windows 用户而言,有 ...
- springcloud之Eureka高可用和用户认证
Eureka进阶 一.Eureka Server的高可用 因为单节点Eureka Server并不适合线上生产环境,Eureka Client会定时连接Eureka Server,获取服务注册列表中到 ...
最新文章
- 图像的上采样和下采样
- 语音助手再次敲响隐私保护警钟
- 与自定义词典 分词_如何掌握分词技术,你需要学会这些
- web测试的平台的开发
- UINavigationBar 上面添加多个按钮
- Exp8 web基础
- 私有云办公平台大规模集群/企业级集群/小型工作室集群解决方案:NextCloud集群部署方案--NextCloud集群架构设计
- formrules 表单验证限制最大值_HTML5表单
- vc 串口 实时保存_Arduino提高篇22—实时时钟DS1302
- [原]解决百度地图多个Marker和InfoWindow时总是打开最后一个InfoWindow的问题
- 数据结构严蔚敏(c语言版)课后算法题答案-树和二叉树
- 基于大数据的精准教学模式探究
- VHDL 四选一数据选择器
- 分簇路由算法 LEACH算法
- ora 01033 解决
- Windows提权基本原理
- num =10在c语言中是什么意思,num是什么词性
- docker使用国内加速器的正确姿势
- Oracle的软解析(soft prase)和硬解析(hard prase)及绑定变量
- 网络131黄宇倩--第二周作业