使用jTDS连接SQL Server遇集成认证错误,需排查用户配置
jTDS连接SQL Server Windows身份验证失败:需检查的用户属性
以下是针对该错误需重点检查的Windows用户及对应SQL Server登录名的属性项:
SQL Server登录名的身份验证类型
确认该Windows用户对应的SQL Server登录名采用Windows身份验证,而非SQL Server身份验证。登录名格式必须为[域\用户名](例如XYZ.net\你的用户名),可在SSMS中查看登录名属性验证。数据库映射与连接权限
确保该登录名已映射到目标数据库XYZ的对应用户,且拥有CONNECT数据库权限。可执行以下SQL验证:USE XYZ; SELECT dp.name AS 数据库用户, dp.permission_name FROM sys.database_permissions dp JOIN sys.database_principals dpr ON dp.grantee_principal_id = dpr.principal_id WHERE dpr.name = '你的Windows用户名';域用户状态与信任关系
检查该Windows用户在域XYZ.net中是否正常激活(未锁定、密码未过期);若SQL Server所在域与用户域不同,需确认两域存在双向信任关系。服务器级登录权限
验证该Windows登录名是否被授予CONNECT SQL服务器级权限,确保允许登录SQL Server实例。执行以下SQL:SELECT sp.name AS 登录名, sp.permission_name FROM sys.server_permissions sp JOIN sys.server_principals spr ON sp.grantee_principal_id = spr.principal_id WHERE spr.name = 'XYZ.net\你的用户名';指定实例的访问权限
由于连接URL指定了instance=dev,需确认该Windows用户被允许访问dev实例,实例未通过组策略或SQL Server配置限制该用户访问。
注意:设置
integratedSecurity=false时需要提供SQL Server身份验证的账号密码,与你使用的Windows身份验证用户不兼容,因此该设置无法解决问题,需聚焦于Windows身份验证的权限与信任配置。
内容的提问来源于stack exchange,提问作者Nikhil Padole
相关产品推荐
相关产品推荐

