Authenticating to a SQL Server instance as a Windows User via JDBC

后端 未结 9 1530
太阳男子
太阳男子 2020-12-06 06:37

I\'m having to support multiple database types for my tenant-enabled web application. Among others, I have successfully supported Microsoft\'s SQL Server, by using the net.s

相关标签:
9条回答
  • 2020-12-06 07:34

    Alternative Method

    The alternative solution is to utilize integrated security. This enables your application to connect to the database as the user in which the application is currently running as. This is enabled by adding integratedSecurity=true; into the connection string properties. If you run into any trouble, make sure the sqljdbc_auth.dll is accessible via classpath or within your app library.

    Security Note

    You're probably already aware, but just have to say make sure not to grant access to "Authenticated Users" to your database as previously suggested as part of the demonstration. Identify which user account your application runs as and grant access to only that specific user in your database server.

    Sources / Additional Info

    • MSDN Doc on JDBC Connection String Configuration (http://technet.microsoft.com/en-us/library/ms378428(v=sql.110).aspx)
    0 讨论(0)
  • 2020-12-06 07:36

    One of the possible reasons for this error to appear is when you configure you data source to use windows authentication and SQL Server is using Extended Protection mode together with SSL (i'm not sure if SSL is required though). This mode requires the client to send additional information - signed service principal name (SPN) and channel binding token (CBT). See more information about Extended Protection Mode here. Currently both JTDS JDBC and Microsoft JDBC drivers do not support this mode. I couldn't find an official statement from JTDS, but there is an open ticket for Microsoft drivers. In order to configure Extended Protection mode, go to SQL Server Configuration Manager, select properties on SQL Server Network Configuration -> Protocols for %your instance% and change Extended Protection option.

    0 讨论(0)
  • 2020-12-06 07:37

    This is my NiFi setup for jTDS driver:

    Database Connection URL: jdbc:jtds:sqlserver://192.168.1.189:1433;DOMAIN=domain_name

    I didn't need to add useNTLMv2=true, but most people need to, so if it doesn't work you can try also: jdbc:jtds:sqlserver://192.168.1.189:1433;DOMAIN=domain_name;useNTLMv2=true

    Database Driver Class Name: net.sourceforge.jtds.jdbc.Driver

    Database User: domain_user_name (**without** @domain) Password: domain_password

    Validation query: select 1

    0 讨论(0)
提交回复
热议问题