В нашем приложении Java нам нужно подключиться к SQL Server с использованием проверки подлинности Kerberos. Мы используем SQL Server 2012 Express, как мы можем это реализовать?Поддерживает ли SQL Server 2012 аутентификацию Kerberos?
ответ
От Understanding Kerberos and NTLM authentication in SQL Server Connections
Kerberos, некоторые аспекты необходимо:
1) клиент и сервер должны присоединиться к домену, и доверенная третья сторона существует; если клиент и сервер находятся в другом домене, эти два домена должны быть настроены как двустороннее доверие.
2) Зарегистрированный СПН. Название участника службы (SPN) - это уникальные идентификаторы для служб, работающих на серверах. Для каждой службы, использующей аутентификацию Kerberos, должен быть установлен SPN, чтобы клиенты могли идентифицировать услугу в сети. Он зарегистрирован в Active Directory под учетной записью компьютера или учетной записью пользователя.
Service Principal Name
Имя участника-службы для SQL Server состоит из следующих элементов:
• ServiceClass: Определяет общий класс обслуживания. Это всегда MSSQLSvc для SQL Server. • Host: Это полное доменное имя DNS компьютера, на котором запущен SQL Server. • Порт: это номер порта, который служба прослушивает.
eg: MSSQLSvc/myserver.corp.mycomany.com:1433
Это решение на основе SQL Server 2005 Мы используем SQL Server 2012, когда мы пытались запустить запрос «выберите auth_scheme из sys.dm_exec_connections, где session_id = @@ spid "для проверки того, что SQL Server может быть запущен через Kerberos, возвращать только NTLM, поэтому нам нужно знать, как мы можем включить кеберосы в SQL Server 2012. –
Вам нужно выполнить запрос удаленно .. не войдя в ту же самую ячейку – TheGameiswar
Теперь мы получают следующее исключение: ** com.microsoft.sqlserver.jdbc.SQLServerException: интегрированный аутентификатор по ошибке. ClientConnectionId: 01fc986b-cf00-4d68-883c-f6871e121637 **, Мы устанавливаем SPN = MSSqlSvc/SUGARSERVER.Sugar.local: 1433, Наше соединение Строка, 'Class.forName (" com.microsoft. sqlserver.jdbc.SQLServerDriver "); String jdbcString = "jdbc: sqlserver: //192.168.0.54: 1433; serverSpn = MSSQLSvc/SUGARSERVER.Sugar.local: 1433; databaseName = SSUnit1PS; integratedSecurity = true; authenticationScheme = JavaKerberos;"; con = DriverManager.getConnection (jdbcString); ' –
Как насчет того, чтобы отправить SQL Server 2012 express kerberos java' в Google? –
В то время как google мы получаем старую информацию, связанную с SQL Server 2003, мы используем SQL Server 2012, Когда мы пытались запустить запрос «выберите auth_scheme из sys.dm_exec_connections, где session_id = @@ spid», чтобы проверить, что SQL Server может быть запущен через Kerberos возвращает только NTLM, поэтому нам нужно знать, как мы можем включить кеберо в SQL Server 2012 –