Microsoft® SQL Server® 2008 R2 서비스 팩 2 다운로드가 지금 바로 가능! 7월 26일자로 배포 시작.
SQL Server® 2008 R2 서비스 팩 2
http://www.microsoft.com/ko-kr/download/details.aspx?id=30437
Microsoft® SQL Server® 2008 R2 SP2 - Express Edition
http://www.microsoft.com/ko-kr/download/details.aspx?id=30438
Microsoft® SQL Server® 2008 R2 SP2 기능 팩
http://www.microsoft.com/ko-kr/download/details.aspx?id=30440
2012/07/26
IIS 8, SNI(서버 이름 표시) 지원
기존에 IIS 에서는 기본으로 SSL 에 대한 호스트 기반으로 작동하지 않고 포트 기반으로 작동 함. 바인딩 자체가 0.0.0.0:443 이렇게 되어서, 기본 SSL 포트를 통해서 여러 SSL 도메인을 사용할수가 없었음. 하지만, IIS 8로 업그레이드 되면서 SNI 기능을 지원하게 됨. (위키피디아 SNI) (but, 클라이언트중에 Windows XP 및 몇몇 웹브라우져는 지원하지 않음)

호스트 이름:포트 : www.comodossl.co.kr:443
인증서 해시 : 81605a6d1e4b6ab7fc5d6119b26c4ca55d80f65d 응용 프로그램 ID : {4dc3e181-e14b-4a21-b022-59fc669b0914}
인증서 저장소 이름: WebHosting
클라이언트 인증서 해지 확인 : Enabled
캐시된 클라이언트 인증서만 사용하여 해지 확인 : Disabled
사용 확인 : Enabled
해지 유효 시간 : 0
URL 검색 제한 시간 : 0
Ctl 식별자 : (null)
Ctl 저장소 이름 : (null)
DS 매퍼 사용 : Disabled
클라이언트 인증서 협상 : Disabled
물론, 기존 IIS 6 등에서도 아래와 같은 방법으로 동일 SSL 포트가 사용 가능하지만,.
cscript.exe adsutil.vbs set /w3svc/<replace with your site id>/SecureBindings ":443:www.domain1.com" 위의 경우 WildcardSSL 또는 MultiDomainSSL 인 경우에만 적용이 가능
iis8-ssl-sni.png
호스트 이름:포트 : www.comodossl.co.kr:443
인증서 해시 : 81605a6d1e4b6ab7fc5d6119b26c4ca55d80f65d 응용 프로그램 ID : {4dc3e181-e14b-4a21-b022-59fc669b0914}
인증서 저장소 이름: WebHosting
클라이언트 인증서 해지 확인 : Enabled
캐시된 클라이언트 인증서만 사용하여 해지 확인 : Disabled
사용 확인 : Enabled
해지 유효 시간 : 0
URL 검색 제한 시간 : 0
Ctl 식별자 : (null)
Ctl 저장소 이름 : (null)
DS 매퍼 사용 : Disabled
클라이언트 인증서 협상 : Disabled
물론, 기존 IIS 6 등에서도 아래와 같은 방법으로 동일 SSL 포트가 사용 가능하지만,.
cscript.exe adsutil.vbs set /w3svc/<replace with your site id>/SecureBindings ":443:www.domain1.com" 위의 경우 WildcardSSL 또는 MultiDomainSSL 인 경우에만 적용이 가능
iis8-ssl-sni.png
2012/07/23
SQL CLR 을 통한 공유 폴더 파일 복사 예
SQL Server CLR 은 닷넷 프레임워크 런타임을 통합하여 SQL Server 의 확장성을 매우 높혀주는 방식으로,. 자세한 사항은 http://msdn.microsoft.com/ko-kr/library/ms131102 를 참조. 아래 예제 코드는 SQL Server 에서 공유 폴더의 파일 정보를 가져오는 사용자 정의 함수 간단 코드.
간단하며,. 공유 폴더에 접근 하려면 원격지 서버에 대한 인증을 해야 하는데, 레거시 API 참조. 인증을 통과한 후에는 일반적인 닷넷 코드를 그대로 사용 하면 되며 SQL 에서 사용자 정의 함수의 데이터 형에 맞게 처리만 해주면 완료.
배포는, VS.NET 의 배포를 하게 되면 원격지 SQL 서버에 배포가 자동으로 됨. 하지만 자동으로 배포시에는 SQL 서버에서 권한 문제로 설정값 편집이 되지 않으므로, SQL 쿼리 스트립트를 생성하여 서버에서 실행하여 등록하는 것이 좋음.
위와 같은 함수를 생성후에 아래와 같은 방식으로 사용자 쿼리문에서 호출 하여 사용
using System.Data; using System.Data.SqlClient; using System.Data.SqlTypes; using Microsoft.SqlServer.Server; using System.Security.Principal; using System.IO; using System.Runtime.InteropServices; using System.Security.Permissions; public partial class UserDefinedFunctions { [DllImport("advapi32.dll", SetLastError = true)] [PermissionSetAttribute(SecurityAction.Demand, Name = "FullTrust")] public static extern bool LogonUser(string lpszUsername, string lpszDomain, string lpszPassword, int dwLogonType, int dwLogonProvider, ref IntPtr phToken); [Microsoft.SqlServer.Server.SqlFunction(DataAccess = DataAccessKind.Read)] public static SqlString yeonpilTestFunction(SqlString LogonName, SqlString DomainName, SqlString LogonPassword, SqlString LocalPathFile, SqlString RemoteUNCFile) { // ALTER DATABASE CLRTest SET TRUSTWORTHY ON IntPtr token = IntPtr.Zero; bool valid = LogonUser((string) LogonName, (string) DomainName, (string) LogonPassword, 2, 0, ref token); if (valid) { using(WindowsImpersonationContext context = WindowsIdentity.Impersonate(token)) { File.Copy((string) LocalPathFile, (string) RemoteUNCFile, true); context.Undo(); } } return new SqlString("Success"); } };
간단하며,. 공유 폴더에 접근 하려면 원격지 서버에 대한 인증을 해야 하는데, 레거시 API 참조. 인증을 통과한 후에는 일반적인 닷넷 코드를 그대로 사용 하면 되며 SQL 에서 사용자 정의 함수의 데이터 형에 맞게 처리만 해주면 완료.
배포는, VS.NET 의 배포를 하게 되면 원격지 SQL 서버에 배포가 자동으로 됨. 하지만 자동으로 배포시에는 SQL 서버에서 권한 문제로 설정값 편집이 되지 않으므로, SQL 쿼리 스트립트를 생성하여 서버에서 실행하여 등록하는 것이 좋음.
CREATE FUNCTION [dbo].[yeonpilFunction](@LogonName [nvarchar](4000), @DomainName [nvarchar](4000), @LogonPassword [nvarchar](4000), @LocalPathFile [nvarchar](4000), @RemoteUNCFile [nvarchar](4000)) RETURNS [nvarchar](4000) WITH EXECUTE AS CALLER AS EXTERNAL NAME [SqlServerCLRTest].[UserDefinedFunctions].[yeonpilFunction]
GO
EXEC sys.sp_addextendedproperty @name=N'SqlAssemblyFile', @value=N'Function1.cs' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'FUNCTION',@level1name=N'yeonpilFunction'
GO
EXEC sys.sp_addextendedproperty @name=N'SqlAssemblyFileLine', @value=N'17' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'FUNCTION',@level1name=N'yeonpilFunction'
GO
GO
EXEC sys.sp_addextendedproperty @name=N'SqlAssemblyFile', @value=N'Function1.cs' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'FUNCTION',@level1name=N'yeonpilFunction'
GO
EXEC sys.sp_addextendedproperty @name=N'SqlAssemblyFileLine', @value=N'17' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'FUNCTION',@level1name=N'yeonpilFunction'
GO
위와 같은 함수를 생성후에 아래와 같은 방식으로 사용자 쿼리문에서 호출 하여 사용
exec yeonpilFunction 'id','domain', 'pwd','d:\test11.txt','\\원격지서버\d$\saved.txt'
가장 많이 본 글
-
구글... 도대체 뭐하는 짓인지......?? 뭐 내용상으로는,. 누군가 Spam 이라며 신고했다는 건데, 스팸 사이트도 아니고 그럴 내용도 없다. 누군가 악의적으로 신고한것인지 ? 아니면 구글 시스템 오류인건지? 특이한건,. 같은 구글 계정으로 생성...
-
다음 목록은,. 정보호호진흥원에서 정리해서 배포하는 보안관련 점검 도구 및 자료입니다. 이 내용은,. KIDC 에 있는 서버들이 해당되는 경우 IDC 에서 고객사에 통보해 주는 메일 내용중 일부인데요. 뭐 유용한? 내용이라 올려 봅니다.^^ <...
-
일반적인 원인 : 너무 높은 IRQL(프로세스 내부 요청 수준)에서 페이징 가능한 메모리를 사용하려고 했습니다. 대개 잘못된 주소를 사용하는 드라이버가 원인입니다. 높은 IRQL에서 페이징 가능한 메모리에 대한 커널 모드 드라이버의 액세스는 금...