통합 보안 = 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 인증을 사용하려면 데이터베이스 서버에 연결하는 것이 좋습니다.윈도우즈 인증을 지정하려면 데이터 공급자와 함께 다음 두 가지 키-값 쌍 중 하나를 사용할 수 있습니다.SQL Server용 NET 프레임워크:
Integrated Security = true;
Integrated Security = SSPI;
그러나 데이터 공급자와 함께 사용할 수 있는 것은 두 번째뿐입니다.NET Framework OleDb.설정했을 경우Integrated Security = true
ConnectionString의 경우 예외가 느려집니다.
데이터 공급자에서 윈도우즈 인증을 지정하려면 다음과 같이 하십시오.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 검색내부 방식:
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
'programing' 카테고리의 다른 글
Swift Xcode 6의 버튼 텍스트를 변경하는 방법 (0) | 2023.04.13 |
---|---|
powershell - 파일 이름과 확장자를 추출합니다. (0) | 2023.04.13 |
Excel 번호 형식:"-409"가 뭐죠? (0) | 2023.04.13 |
WPF 치트시트가 있나요? (0) | 2023.04.13 |
PowerShell: 스크립트 디렉토리에서 명령 실행 (0) | 2023.04.13 |