ADOMD.NET에서 보안 연결 설정
ADOMD.NET에서 연결을 사용하는 경우 연결에 사용되는 보안 메서드는 AdomdConnection의 Open 메서드를 호출할 때 사용되는 연결 문자열의 ProtectionLevel 속성 값에 따라 결정됩니다.
ProtectionLevel 속성은 인증되지 않음, 인증됨, 서명됨 및 암호화됨의 네 가지 보안 수준을 제공합니다. 다음 표에서는 이러한 여러 보안 수준에 대해 설명합니다.
[!참고]
데이터베이스 연결 풀링을 사용하기로 선택한 경우에는 데이터베이스에서 보안을 관리할 수 없습니다. 이는 데이터베이스 연결 풀링을 사용하려면 연결 문자열이 풀 연결과 같아야 하기 때문입니다. 따라서 다른 곳에서 보안을 관리해야 합니다.
보안 수준 |
ProtectionLevel 값 |
---|---|
|
None |
|
Connect |
|
Pkt Integrity 또는 PktIntegrity |
|
Pkt Privacy 또는 PktPrivacy |
모든 연결 유형에 모든 보안 수준을 사용할 수 있는 것은 아닙니다.
TCP 연결은 네 가지 보안 수준 중 한 수준만 사용할 수 있습니다. 실제로 TCP 연결을 Windows 통합 보안과 함께 사용하게 되면 가장 높은 보안 수준으로 분석 데이터 원본에 연결할 수 있습니다.
HTTP 연결은 인증된 연결만 가능합니다. 따라서 ProtectionLevel 속성을 Connect로 설정해야 합니다.
HTTPS 연결은 암호화된 연결만 가능합니다. 따라서 ProtectionLevel 속성을 Pkt Privacy 또는 PktPrivacy로 설정해야 합니다.
TCP 연결 보안 설정
TCP 연결의 경우 ProtectionLevel 속성은 다음 표에 나열된 네 가지 보안 수준을 모두 지원합니다.
ProtectionLevel 값 |
TCP 연결 사용 여부 |
결과 |
---|---|---|
None |
예 |
인증되지 않은 연결을 지정합니다. 공급자에서 TCP 스트림을 요청하지만 해당 스트림을 요청하는 사용자에 대해 수행되는 인증 형식이 없습니다. |
Connect |
예 |
인증된 연결을 지정합니다. 공급자에서 TCP 스트림을 요청한 후 해당 스트림을 요청하는 사용자의 보안 컨텍스트가 서버에 대해 인증됩니다.
인증이 성공 또는 실패한 후 연결을 인증하는 데 사용된 보안 컨텍스트는 삭제됩니다. |
Pkt Integrity 또는 PktIntegrity |
예 |
서명된 연결을 지정합니다. 공급자에서 TCP 스트림을 요청한 후 해당 스트림을 요청하는 사용자의 보안 컨텍스트가 서버에 대해 인증됩니다.
|
Pkt Privacy 또는 PktPrivacy |
예 |
암호화된 연결을 지정합니다.
공급자에서 TCP 스트림을 요청한 후 해당 스트림을 요청하는 사용자의 보안 컨텍스트가 서버에 대해 인증됩니다.
|
연결에 Windows 통합 보안 사용
Windows 통합 보안은 Analysis Services 인스턴스에 대한 연결을 가장 높은 보안 수준으로 설정할 수 있는 방법입니다. Windows 통합 보안은 인증 프로세스 동안 사용자 이름 또는 암호 같은 보안 자격 증명을 노출하지 않고 대신 현재 실행 중인 프로세스의 보안 식별자를 사용하여 ID를 설정합니다. 대부분의 클라이언트 응용 프로그램에서 이 보안 식별자는 현재 로그온한 사용자의 ID를 나타냅니다.
Windows 통합 보안을 사용하려면 연결 문자열을 다음과 같이 설정해야 합니다.
Integrated Security 속성의 경우 이 속성을 설정하지 않거나 SSPI로 설정합니다.
[!참고]
HTTP 연결에서 Integrated Security 속성에 대해 Basic 설정을 사용해야 하므로 Windows 통합 보안은 TCP 연결에만 사용할 수 있습니다.
ProtectionLevel 속성의 경우 이 속성을 Connect, Pkt Integrity 또는 Pkt Privacy로 설정합니다.
HTTP 연결 보안 설정
HTTPS 및 SSL(Secure Sockets Layer)은 분석 데이터 원본과의 HTTP 통신을 외부에서 보안 설정하는 데 사용할 수 있습니다.
XMLA 공급자가 보안 HTTP만을 사용하므로 ADOMD.NET의 HTTP 연결은 다음 표와 같이 서명된 연결이어야 합니다.
ProtectionLevel 값 |
HTTP 또는 HTTPS 사용 |
---|---|
None |
아니요 |
Connect |
HTTP |
Pkt Integrity 또는 PktIntegrity |
아니요 |
Pkt Privacy 또는 PktPrivacy |
HTTPS |
보안 HTTP 연결 열기
다음 예제에서는 ADOMD.NET을 사용하여 AdventureWorksAS 예제 Analysis Services 데이터베이스에 대한 HTTP 연결을 여는 방법을 보여 줍니다.
Public Function GetAWEncryptedConnection( _
Optional ByVal serverName As String = "https:\\localhost\isapy\msmdpump.dll") _
As AdomdConnection
Dim strConnectionString As String = ""
Dim objConnection As New AdomdConnection
Try
' To establish an encrypted connection, set the
' ProtectionLevel setting to PktPrivacy.
strConnectionString = "DataSource=" & serverName & ";" & _
"Catalog=AdventureWorksAS;" & _
"ProtectionLevel=PktPrivacy;"
' Note that username and password are not supplied here.
' The current security context is used for authentication
' purposes.
objConnection.ConnectionString = strConnectionString
objConnection.Open()
Catch ex As Exception
objConnection = Nothing
Throw ex
Finally
' Return the encrypted connection.
GetAWEncryptedConnection = objConnection
End Try
End Function