programing

통합 보안 = True와 통합 보안 = SSPI의 차이점은 무엇입니까?

powerit 2023. 4. 13. 21:14
반응형

통합 보안 = True와 통합 보안 = SSPI의 차이점은 무엇입니까?

통합 보안을 사용하는 앱이 두 개 있습니다.할당하다Integrated Security = true접속 문자열 및 기타 집합에서Integrated Security = SSPI.

와의 차이는 무엇입니까?SSPI그리고.true통합 보안의 맥락에서요?

마이크로소프트에 따르면 그것들은 같은 것이다.

언제false, 사용자 ID 및 비밀번호는 연결로 지정됩니다.true일 경우 현재 윈도우즈 계정 인증 정보가 인증에 사용됩니다.
인식되는 값은true,false,yes,no,그리고.sspi(권장)에 상당합니다.true.

Integrated Security=true;모든 SQL 프로바이더에서 동작하는 것은 아닙니다.이것에 의해, Ethernet과 함께 사용했을 경우는 예외가 발생합니다.OleDb프로바이더

그러니까 기본적으로는Integrated Security=SSPI;둘 다 사용할 수 있기 때문에 선호됩니다.SQLClient&OleDB프로바이더

다음은 MSDN - 연결 문자열 구문(ADO)에 따른 전체 구문 집합입니다.네트워크)

![Windows 인증 구문

Windows 인증 사용

일반적으로 통합 보안으로 알려진 Windows 인증을 사용하려면 데이터베이스 서버에 연결하는 것이 좋습니다.윈도우즈 인증을 지정하려면 데이터 공급자와 함께 다음 두 가지 키-값 쌍 중 하나를 사용할 수 있습니다.SQL Server용 NET 프레임워크:

 Integrated Security = true;
 Integrated Security = SSPI;

그러나 데이터 공급자와 함께 사용할 수 있는 것은 두 번째뿐입니다.NET Framework OleDb.설정했을 경우Integrated Security = trueConnectionString의 경우 예외가 느려집니다.

데이터 공급자에서 윈도우즈 인증을 지정하려면 다음과 같이 하십시오.ODBC용 NET Framework에서는 다음 키와 값의 쌍을 사용해야 합니다.

Trusted_Connection = yes;

출처: MSDN: 연결 문자열 사용

많은 질문들은 우리가 다음 방법을 사용한다면 답을 얻을 수 있다..Net Reflector실제 코드를 보다SqlConnection:)true그리고.sspi동일:

internal class DbConnectionOptions

...

internal bool ConvertValueToIntegratedSecurityInternal(string stringValue)
{
    if ((CompareInsensitiveInvariant(stringValue, "sspi") || CompareInsensitiveInvariant(stringValue, "true")) || CompareInsensitiveInvariant(stringValue, "yes"))
    {
        return true;
    }
}

...

EDIT 20.02.2018 현재.넷코어는 오픈소스를 github에서 볼 수 있습니다!Convert Value To Integrated Security 검색내부 방식:

https://github.com/dotnet/corefx/blob/fdbb160aeb0fad168b3603dbdd971d568151a0c8/src/System.Data.SqlClient/src/System/Data/Common/DbConnectionOptions.cs

Integrated Security = False : 사용자 ID와 비밀번호가 연결에서 지정됩니다.통합 보안 = true : 현재 Windows 계정 자격 증명이 인증에 사용됩니다.

통합 보안 = SSPI : 이것은 true와 동일합니다.

접속 문자열에서 사용자 이름과 비밀번호 속성을 사용하지 않고 통합 보안을 사용할 수 있습니다.

하겠습니다.Integrated Security = false

false 사용자 ID 및 비밀번호는 연결 문자열로 지정됩니다.
true 인증에는 Windows 계정 자격 증명이 사용됩니다.

은 「」입니다.true,false,yes,no , , , , 입니다.SSPI.

ifUser ID ★★★★★★★★★★★★★★★★★」Password은 "Distrated Security" 로 됩니다.true , , , 「 」User ID ★★★★★★★★★★★★★★★★★」Password됩니다.

연결 문자열은 데이터에 연결하는 항목방법에 따라 다릅니다.이들은 같은 데이터베이스에 접속하고 있지만 첫 번째는 를 사용하고 있습니다.SQL Server용 NET Framework 데이터 공급자.통합보안=True는 OleDb에서 작동하지 않습니다.

  • 데이터 소스=.;초기 카탈로그=aspnetdb;통합보안=진실의
  • Provider=SQLOLEDB;Data Source=.;통합보안=SSPI;초기 카탈로그=aspnetdb

확실하지 않은 경우 Visual Studio Server Explorer 데이터 연결을 사용하십시오.

True는 를 사용하는 경우에만 유효합니다.NET SqlClient 라이브러리.OLEDB를 사용할 때는 유효하지 않습니다.SSPI는 .net SqlClient 라이브러리와 OLEDB 중 하나를 사용하는 경우 bvaid입니다.

제 생각에는

통합 보안=을 사용하지 않는 경우SSPI는 접속 문자열에서 사용자 이름과 비밀번호를 하드코드해야 합니다.이것은 "상대적으로 안전하지 않다"는 것을 의미합니다.왜냐하면 전 직원이라도 정보에 악의적으로 접근할 수 있기 때문입니다.

언급URL : https://stackoverflow.com/questions/1229691/what-is-the-difference-between-integrated-security-true-and-integrated-securit

반응형