티스토리 툴바


증상(Symptoms)
OS에서는 80개의 프로세서를 인지하지만, SQL Server에서는 40개의 논리 프로세서만을 인지함.

시스템 환경
Windows Server 2008 R2 x64
4 NUMA nodes
Processor # : 80 (8 sockets * 10 cores)
Hyperthreading : Off
SQL Server 2005 Enterprise Edition

원인(Cause)
SQL Server 2008까지는 Windows Server 2008 R2부터 64개를 초과하는 프로세서를 지원하기 위해서 도입된 Processor Group 개념을 인지하지 못하기 때문임.

각 Procesor Group에 프로세스를 할당할 때는 NUMA node 단위로 할당이 이루어지며, 최대 4개의 Processor Group까지 사용될 수 있음. 그룹당 최대 64개의 프로세서를 지원하므로, Windows Server 2008 R2 부터는 총 256개의 프로세서를 인지할 수 있음. 하지만, SQL Server 2005와 같이 Processor Group 개념을 인지하지 못하는 응용 프로그램에는 OS가 임의로 하나의 Processor Group만을 할당해주게 됨.

이 예에서는 총 80개의 프로세서가 존재하므로, 두 개의 Processor Group으로 각각 2개의 NUMA node가 할당되어 Processor Group당 40개의 프로세서가 존재하게 됨. 이중 임의로 하나의 Processor Group이 OS에 의해 SQL Server에 할당되므로, SQL Server에서는 40개의 논리 프로세서만을 인식하게 됨.

해결(Resolution)
SQL Server 2008 R2부터 Processor Group을 인지하므로 SQL Server를 업그레이드하는 것이 최선의 방법임.

추가 정보 (Morea Information)
1. SQL Server 2005에서 지원되는 최대 프로세서 수를 보면 "운영 체제에서 지원하는 최대 크기"라고 되어 있습니다. 이 문구에는 SQL 2005가 출시된 당시의 운영체제에서 지원하는 최대 크기"라는 숨은 의미가 있습니다. 즉, SQL Server 2005는 최대 64개의 프로세서를 지원한다고 할 수 있습니다.

SQL Server 2005 Edition에서 지원하는 프로세서의 최대 개수

2. 위 예제에 사용된 시스템 환경에서 SQL Server가 40개의 프로세서를 인지하더라도 Hyperthreading의 On/Off여부에 따라 다르게 인지하게 됩니다.

1) Hyperthreading이 켜져(ON) 있을 때,  OS는 160개의 프로세스를 인식하지만 SQL Server는 40개만을 인식하게 됨. 64개를 넘는 프로세스를 담을 수 없으므로 4개의 Processor Group이 모두 사용됨.

2) Hyperthreading이 꺼져(OFF) 있을 때, OS는 80개의 프로세스를 인식하지만 SQL Server는 40개만을 인식하게 됨. Processor Group 3, 4는 사용되지 않음.

3. 관련 글
SQL Server 2005 and 2008 versions may not detect all available processors on a machine with more than 64 logical processors

HTH
한기환
저작자 표시 비영리 동일 조건 변경 허락

SQL 2000/Windows 2000 Cluster(x86)에서 수행되던 SQL instance를 SQL Server 2008 r2/Windows 2003 sp2(x64)로 Migration한 후, Network Name과 IP를 예전과 동일한 것으로 변경할 때 고려할 사항.

·        Windows 2003 sp2 sql 2008 r2 설치하려면 다음 s/w 미리 설치되어야 .

 

Microsoft .NET Framework 3.5 서비스 1

http://www.microsoft.com/downloads/ko-kr/details.aspx?familyid=ab99342f-5d1a-413d-8319-81da479ab0d7&displaylang=ko

 

Windows PowerShell 1.0 English-Language Installation Package for Windows Server 2003 (KB926139)

http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=20020

 

Windows Installer 4.5 Redistributable - 한국어

http://www.microsoft.com/downloads/ko-kr/details.aspx?familyid=5a58b56f-60b6-4412-95b9-54d056d6f9f4&displaylang=ko

 

Error message when you try to create a cluster file share resource in a Windows Server 2003-based cluster: "System error 87 has occurred (0X00000057)"

http://support.microsoft.com/kb/937444/en-us

 

· Migration 절차

1. How to move databases between computers that are running SQL Server

http://support.microsoft.com/kb/314546/en-us

Step 1: How to move user databases

Step 2: How to transfer logins and passwords

Step 3: How to resolve orphaned users

Step 4: How to move jobs, alerts, and operators

Step 5: How to move DTS packages

Step 6: Change the sp_configure settings to match the previous system

시스템 DB는 빌드 번호가 틀린 머신에서 restore가 되지 못하므로 필요한 정보는 위 절차에 따라 옮겨져야 함.

2. 머신을 Network에서 분리/종료 -> 동일한 이름이 있으면 안되므로, 분리해 놓아야 .

3. 머신에서 ip, network name을 구 머신의 것과 동일하게 변경하는 절차

1) Active Directory 사용자 컴퓨터 - Computers에서 () 가상 컴퓨터 객체 삭제

2) SQL 그룹 offline

3) Ip, network name 같이 변경

4) SQL 그룹 online

· 추가 정보

1. 변경된 IP 회사 네트워크를 통해 전파되려면 30 이상 걸릴 있습니다. SQL IP Address1(장애 조치(Failover) 클러스터 인스턴스 이름) SQL 네트워크 이름(장애 조치(Failover) 클러스터 인스턴스 이름) 온라인 상태로 설정한 다음 장애 조치(Failover) 클러스터 인스턴스 이름에 대해 Ping 수행하여 DNS 의해 IP 주소로 확인될 때까지 기다려야 합니다.

2. 네트워크 전파 지연을 최소화하려면, 서버 노드의 명령 프롬프트에서 다음 명령을 실행합니다.

ipconfig /flushdns

ipconfig /registerdns

nbtstat –RR


3. 이름 등록이 실패하는 경우, Kerberos인증 사용을 이용하여 이름 등록을 다시 시도해 볼 있음.


SQL Network Name
속성매개 변수 – Kerberos 인증 사용 uncheck – 적용 - Kerberos 인증 사용 check – 적용

단, 이 옵션은 Windows Server 2003 R2까지만 제공됨.


[기타]

· 참조 문서

Cluster/Network Name 변경

방법: SQL Server 장애 조치(Failover) 클러스터 인스턴스 이름 변경

http://msdn.microsoft.com/ko-kr/library/ms178083.aspx

Cluster/IP 변경

방법: SQL Server 장애 조치(Failover) 클러스터의 IP 주소 변경

http://msdn.microsoft.com/ko-kr/library/ms190460.aspx

Support for Microsoft SQL Server 2008 R2, 2008, 2005, and 2000

http://support.microsoft.com/ph/1044

· Microsoft JDBC Driver 버전 속성
중요) Migration전 점검 사항
JDBC Driver를 이용하여 SQL Server에 접속하는 Client가 있다면, JDK버전이 충족되는지 꼭 확인하는 작업이 필요함.

Microsoft JDBC Driver 버전

1.2

2.0

3.0

연결 가능한 SQL Server 버전

2000,2005

2000,2005,2008

2000,2005,2008, 2008 R2

필요한 JDK 버전

1.4 이상

5.0 이상

5.0 이상

호화되는(준하는) JDBC 버전

3.0

4.0

4.0

 

 

감사합니다.
한 기환 (Key)
This posting is provided "AS IS" with no warranties, and confer no rights.

저작자 표시 비영리 동일 조건 변경 허락


증상(Symptoms)
SQL Server Configuration Manager (구성 관리자)에서 SQL Server Service (서비스) 클릭시 서비스 목록이 보이지 않고 다음 오류가 발생함.

오류 메시지
원격 프로시저를 호출하지 못했습니다. (0x800706be)

Error Message
The remote procedure call failed (0x800706be)

새로 고침을 해보면 "WMI 공급자의 데이터를 요청하는 중..."이라는 메시지로 변경되었다가 오류 메시지로 변경되는 것을 확인할 수 있음.

응용 프로그램 이벤트 로그에는 svrenumapi100.dll 모듈에 오류 발생함.

원인(Cause)

svrenumapi100.dll 파일이 손상되어 발생하는 이슈임.

해결(Resolution)
문제가 없는 이 파일(svrenumapi100.dll)의 상위 버전을 포함하는 서비스 팩 또는 누적 업데이트 설치.
(Apply a SP or a CU including a higher version of the file)

i.e. 파일 버전 2009.100.1617.0 에서 문제가 되었고, SQL Server 2008 R2 SP1설치를 통해 2009.100.2500.0으로 업데이트 된 후에는 증상이 사라짐.

추가 정보 (Morea Information)
응용 프로그램 이벤트 로그에 남아 있는 메시지

 로그 이름: Application
원본: Application Error
날짜: 2011-09-30 오후 3:27:57
이벤트 ID: 1000
작업 범주: (100)
수준: 오류
키워드: 클래식
사용자: 해당 없음
컴퓨터: MyCom.MyDomain.com
설명:
오류 있는 응용 프로그램 이름: wmiprvse.exe, 버전: 6.1.7601.17514, 타임스탬프: 0x4ce79267
오류 있는 모듈 이름: svrenumapi100.dll, 버전: 2009.100.1617.0, 타임스탬프: 0x4db1edee
예외 코드: 0xc0000005
오류 오프셋: 0x0003a05f
오류 있는 프로세스 ID: 0x1ecc
오류 있는 응용 프로그램 시작 시간: 0x01cc7f3a168c54d7
오류 있는 응용 프로그램 경로: C:\Windows\sysWOW64\wbem\wmiprvse.exe
오류 있는 모듈 경로: c:\Program Files (x86)\Microsoft SQL Server\100\Shared\svrenumapi100.dll
보고서 ID: 558ae5c2-eb2d-11e0-a891-001f1623922f
이벤트 Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="Application Error" />
<EventID Qualifiers="0">1000</EventID>
<Level>2</Level>
<Task>100</Task>
<Keywords>0x80000000000000</Keywords>
<TimeCreated SystemTime="2011-09-30T06:27:57.000000000Z" />
<EventRecordID>6536</EventRecordID>
<Channel>Application</Channel>
<Computer>MyCom.MyDomain.com</Computer>
<Security />
</System>
<EventData>
<Data>wmiprvse.exe</Data>
<Data>6.1.7601.17514</Data>
<Data>4ce79267</Data>
<Data>svrenumapi100.dll</Data>
<Data>2009.100.1617.0</Data>
<Data>4db1edee</Data>
<Data>c0000005</Data>
<Data>0003a05f</Data>
<Data>1ecc</Data>
<Data>01cc7f3a168c54d7</Data>
<Data>C:\Windows\sysWOW64\wbem\wmiprvse.exe</Data>
<Data>c:\Program Files (x86)\Microsoft SQL Server\100\Shared\svrenumapi100.dll</Data>
<Data>558ae5c2-eb2d-11e0-a891-001f1623922f</Data>
</EventData>
</Event>

로그 이름: Application
원본: Windows Error Reporting
날짜: 2011-09-30 오후 3:27:57
이벤트 ID: 1001
작업 범주: 없음
수준: 정보
키워드: 클래식
사용자: 해당 없음
컴퓨터: MyCom.MyDomain.com
설명:
오류 버킷 , 유형 0
이벤트 이름: APPCRASH
응답: Not available
Cab ID: 0

문제 서명:
P1: wmiprvse.exe
P2: 6.1.7601.17514
P3: 4ce79267
P4: svrenumapi100.dll
P5: 2009.100.1617.0
P6: 4db1edee
P7: c0000005
P8: 0003a05f
P9:
P10:

첨부 파일:

이 파일은 다음에서 사용할 수 있습니다.
C:\ProgramData\Microsoft\Windows\WER\ReportQueue\AppCrash_wmiprvse.exe_735289241f57886abb1e97ae924ad5eedc9e178_1ff6d7bf

분석 기호:
해결 방법 재확인: 0
보고서 ID: 558ae5c2-eb2d-11e0-a891-001f1623922f
보고서 상태: 4
이벤트 Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="Windows Error Reporting" />
<EventID Qualifiers="0">1001</EventID>
<Level>4</Level>
<Task>0</Task>
<Keywords>0x80000000000000</Keywords>
<TimeCreated SystemTime="2011-09-30T06:27:57.000000000Z" />
<EventRecordID>6537</EventRecordID>
<Channel>Application</Channel>
<Computer>MyCom.MyDomain.com</Computer>
<Security />
</System>
<EventData>
<Data>
</Data>
<Data>0</Data>
<Data>APPCRASH</Data>
<Data>Not available</Data>
<Data>0</Data>
<Data>wmiprvse.exe</Data>
<Data>6.1.7601.17514</Data>
<Data>4ce79267</Data>
<Data>svrenumapi100.dll</Data>
<Data>2009.100.1617.0</Data>
<Data>4db1edee</Data>
<Data>c0000005</Data>
<Data>0003a05f</Data>
<Data>
</Data>
<Data>
</Data>
<Data>
</Data>
<Data>C:\ProgramData\Microsoft\Windows\WER\ReportQueue\AppCrash_wmiprvse.exe_735289241f57886abb1e97ae924ad5eedc9e178_1ff6d7bf</Data>
<Data>
</Data>
<Data>0</Data>
<Data>558ae5c2-eb2d-11e0-a891-001f1623922f</Data>
<Data>4</Data>
</EventData>
</Event>


감사합니다.
한 기환 (Key)
This posting is provided "AS IS" with no warranties, and confer no rights. 
 

저작자 표시 비영리 동일 조건 변경 허락

<2011.09.30> 개인정보보호법 시행

분류없음 2011/09/28 11:00 posted by Key Han

<2011.09.30> 개인정보보호법 시행

 

이제 개인정보에대한 안전조치의무를 다하지않은 개인정보처리자는 위법자가 되어 처벌을 받게 된다는 말이다. 여기서 "발견" 한번 비틀어서 보면, 발견 되지 않으면 처벌 받지 않는다는 말이다. 적지 않은 수가 불법 S/W를 사용중이지만 모두가 걸리지는 않는 것과 같다고나 할까.

 

그동안 있어온 크고 작은 개인정보 유출 사고가 개인정보보호법의 추진 배경이 되었으므로, 모든 개인정보 취급자들은 적극적으로 개인정보의 보호를 위한 최선의 노력을 해야할 것이다

법의 집행과관련해서는 행안부의 김남석 차관이 다음과 같이 말했다. (출처 : 전자신문)


시행 초기에는 엄격한 법 집행보다 6개월가량 계도기간을 두고 처벌보다 개선 중심의 현장점검을 강화할 것

개인정보보호법 시행 이후 강력한 단속으로 벌칙 및 과태료가 부과되는 것을 우려하지만 법 시행 초기에는 단속보다 컨설팅과 교육 중심으로 운영할 계획

개인정보보호법은 개인정보 사각지대를 없애 사용자 권익을 보호하는 것인 만큼 투자여력이 부족한 중소사업자를 가능한 지원할 방침

 
개인정보보호팀을 운영할 있는 규모의 업체는 알아서 대응하겠지만, 그렇지 못한 업체들은 행정안전부의 지원을 적극적으로 활용하여 불이익을 당하는 일이 없어야 겠다. 법의 적용 대상이라고 제시한 350만 사업자가 6개월 내에 몇 %나 법을 준수하게 될지는 아직도 미지수이다. 주관 부처인 행정안전부에서는 이 비율의 향상을 위해서 부단한 노력이 필요할 것이다.

한편, 대형
포털들은 주민등록번호를 대체할 있는 방안으로 I-PIN 사용을 발빠르게 적용한 상황이다. 사실, 내용은 이미 개인정보보호법에 포함되어 있어서 어쩔 없이 적용 해야할 사항이었다시행일이 2012.3.30으로 다른 항목보다는 조금 시간적 여유가 있었지만, 개인정보유출 사고가 적용 시기를 앞당기게 만들었다. (참조 : 개인정보보호법 24 2항)

대통령령으로 정하는 기준에 해당하는 개인정보처리자는 정보주체가 인터넷 홈페이지를 통하여 회원으로 가입할 경우 주민등록번호를 사용하지 아니하고도 회원으로 가입할 있는 방법을 제공하여야 한다. <시행일 2012.3.30>

 

불확실성의 시대에 대비하여 우리는 보험이라는 것을 든다. 법의 적용 대상이 되는 350만 사업자들은 안전한 개인정보 보호를 위한 보험(기술적.관리적 물리적 조치)를 취해야 할 시점인 것이다
 

참조

행정안전부 - 개인정보보호종합지원시스템

한국인터넷진흥원(KISA)


글은 개인적인  의견이며 제가 속한 회사의 입장과는 다를 있습니다.

감사합니다.
 

한기환

저작자 표시 비영리 동일 조건 변경 허락

개요

Application Role은 권한 할당 주체를 Database Role이나 User가 아니라 접속하는 Application에 주고자 할 때 사용합니다. 그렇다고 해서 Login을 대체할 수 있는 것은 아니며, 권한 할당에만 사용될 수 있습니다. Application Role이라는 idea는 좋았으나, 제약사항이 많기 때문에 현업에서는 널리 사용되지 못하고 있는 것이 사실입니다. Application Role에 어디에 쓰이는지에 대한 문의가 간혹 있어서 정리해 보았습니다.

적용 시나리오

특정 Application에서 SQL Server에 접속했을 때, 로그인한 사용자에 상관없이, 동일한 권한을 부여하고 싶다라는 생각을 해본적이 있으신가요? 예를들어, 온라인 쇼핑몰에서 제품을 배송하는 업체는 결제가 이루어진 주문 내역만 확인할 수 있으면 됩니다. 모든 배송 직원들은 특별한 단말기의 Application을 이용하여 이 테이블을 조회하고 있다면, 일일이 배송 직원들의 계정을 Database Role에 추가하지 않고도 공통된 권한을 부여해 주면 좋겠죠? 이 경우엔 Application Role이 아주 유용하게 사용될 수 있습니다. (물론 현업에서는 좀 더 스마트한 방법을 사용하고 있을 것입니다 :)

Application Role 적용 순서

  1. SSMS에서
    1. 특정 Database에서 Application Role 생성
      위치 :Databases – 사용자DB-Security-Roles-Application Roles
    2. 생성된 Role로 이용 가능한 권한 할당
  2. Application에서
    1. SQL Server에 연결.
      연결에 사용되는 계정은, 사용을 원하는 DB에서, 다음 두개의 SP를 수행할 수 있는 권한만 있으면 됨.
      sys.sp_setapprole, sys.sp_unsetapprole
    2. sys.sp_setapprole를 이용하여 Applicatiion role 활성화
    3. 이제 로그인에 사용된 계정의 권한은 무시되고, Application Role에 할당된 권한을 행사할 수 있음.
    4. 2에서 Cookie를 활성화하였다면, sys.sp_unsetapprole를 호출해서 원래 login계정의 context로 돌아갔다가 다시 sys.sp_setapprole를 사용하여 Application Role의 context로 돌아갈 수도 있음.

위 Application 수행 단계를 SSMS의 쿼리 창에서 수행해도 동일한 효과를 확인할 수 있습니다.

Use AdventureWorks
--AdventureWorks에 DBO권한이 있는 계정으로 로그인.
GO

SELECT USER_NAME();
--현재 로그인한 사용자 정보 확인
--dbo--

SELECT TOP 1 * FROM Sales.SalesOrderHeader
SELECT TOP 1 * FROM Sales.SalesOrderDetail
--테이블에 접근이 가능한 것을 확인함.

CREATE APPLICATION ROLE Delivery
    WITH PASSWORD = '987G^bv876sPY)Y5m23'
    , DEFAULT_SCHEMA = Sales;
--Application Role생성
GO

GRANT SELECT ON Sales.SalesOrderHeader TO Delivery
--Application Role에 권한 부여
GO

DECLARE @cookie varbinary(8000);
EXEC sp_setapprole 'Delivery', '987G^bv876sPY)Y5m23'
    , @fCreateCookie = true, @cookie = @cookie OUTPUT;
-- The application role is now active.
select @cookie
--Application Role 활성화 후 반환된 쿠기값 저장
--0x010000003E90474C861A2BE281315B40E311825E5B72D968136125F0FC0E708A29230000

SELECT USER_NAME();
--현재 로그인한 사용자 정보 확인
--Delivery

SELECT TOP 1 * FROM Sales.SalesOrderHeader
SELECT TOP 1 * FROM Sales.SalesOrderDetail
/*
Sales.SalesOrderHeader에만 접근 가능함.
Sales.SalesOrderDetail는 229오류 발생.
Msg 229, Level 14, State 5, Line 2
개체 'SalesOrderDetail', 데이터베이스 'AdventureWorks', 스키마 'Sales'에 대한 SELECT 권한이 거부되었습니다.
*/

DECLARE @cookie varbinary(8000) = 0x010000003E90474C861A2BE281315B40E311825E5B72D968136125F0FC0E708A29230000
EXEC sp_unsetapprole @cookie;
--쿠키값을 이용하여 Application Role을 비활성화 시키고 원래의 context로 복귀
GO

SELECT USER_NAME();
--현재 로그인한 사용자 정보 확인 : 원래 user로 변경됨.
--dbo
GO

--Application Role삭제
DROP APPLICATION ROLE Delivery
GO

추가정보

* 응용 프로그램 역할에는 다음과 같은 특징이 있습니다.

  • 데이터베이스 역할과 달리 응용 프로그램 역할은 멤버를 포함하지 않습니다.

  • 응용 프로그램 역할은 응용 프로그램에서 sp_setapprole 시스템 저장 프로시저에 응용 프로그램 역할 이름과 암호를 제공하면 활성화됩니다.

  • 암호는 클라이언트 컴퓨터에 저장되어 런타임에 제공되어야 하므로 SQL Server 내에서는 응용 프로그램 역할을 활성화할 수 없습니다.

  • 암호가 암호화되지 않습니다.SQL Server 2005부터는 매개 변수 암호가 단방향 해시로 저장됩니다.

  • 응용 프로그램 역할이 활성화된 후 응용 프로그램 역할을 통해 얻은 권한은 연결 기간 동안 유효합니다.

  • SQL Server 2000에서는 실행 컨텍스트를 원래 호출자로 되돌릴 수 없으므로,응용 프로그램 역할을 사용하려면 연결 풀링을 해제해야 합니다.자세한 내용은 SQL Server 연결 풀링(ADO.NET)을 참조하십시오.

  • 응용 프로그램 역할은 public 역할에 부여된 권한을 상속합니다.

  • sysadmin 고정 서버 역할의 멤버가 응용 프로그램 역할을 활성화하는 경우, 연결 기간 동안 보안 컨텍스트가 해당 응용 프로그램 역할의 보안 컨텍스트로 전환됩니다.

  • 응용 프로그램 역할이 있는 데이터베이스에 guest 계정을 만들면 해당 응용 프로그램 역할 또는 역할을 호출하는 어떤 로그인에 대해서도 데이터베이스 사용자 계정을 만들 필요가 없습니다.응용 프로그램 역할은 다른 데이터베이스에 guest 계정이 있는 경우에만 해당 데이터베이스에 직접 액세스할 수 있습니다.

  • SYSTEM_USER와 같은 로그인 이름을 반환하는 기본 제공 함수가 응용 프로그램 역할을 호출한 로그인의 이름을 반환합니다.데이터베이스 사용자 이름을 반환하는 기본 제공 함수는 응용 프로그램 역할의 이름을 반환합니다.

출처) SQL Server에서 응용 프로그램 역할 만들기(ADO.NET)

참조

Securing Data With Application Role
SQL Server Security: Pros and Cons
sp_setapprole (Transact-SQL)

감사합니다.
한기환

Windows Azure SDK로 Web Role을 배포하기 위해서는 Windows Azure Compute와 Storage Emulator가 시작되어야 합니다. Storage Emulator를 초기화하는 과정에서는 SQL Server instance가 반드시 필요하며 기본적으로 localhost\SQLExpress가 사용됩니다. Local machine에서 이 SQL Instance가 시작되어 있지 않으면, Cloud project를 배포 할 수 없으므로 web role을 수행해 볼 수 없습니다.

설치된 SQL Server가없다면, 새 instance를 설치해 주거나 다른 instance를 Development Storage용으로 지정해 주어야 합니다. 이 글에서는 다른 instance를 지정해 주는 방법에 대해 설명합니다.

DSInit.exe 이용하여 Development Storage용 SQL instance 설정하기

1. Windows Azure SDK Command Prompt 실행.

2. DSInit(Development Storage Initialization)을 통해 localhost에 설치된 SQL instance지정

--예) SQL Server가 default instance인 경우에 . 또는 MSSQLSERVER 지정.
DSInit /sqlinstance:.

--예) Named instance인 경우에 해당 instance명 지정. (SQL2008인 경우)
DSInit /sqlinstance:SQL2008

3. 위 명령이 성공적으로 수행되고나면 다음과 같은 메시지를 확인할 수 있음.

Added reservation for http://127.0.0.1:10000/ in user account MyDomain\MyAccount.
Added reservation for http://127.0.0.1:10001/ in user account MyDomain\MyAccount.
Added reservation for http://127.0.0.1:10002/ in user account MyDomain\MyAccount.

Creating database DevelopmentStorageDb20090919...

Granting database access to user MyDomain\MyAccount...

Initialization successful. The storage emulator is now ready for use.

Blob, Queue, Table 서비스용으로 각각 10000, 10001, 10002  port를 예약합니다. 이후, 명시된 SQL instance에 현재 로그인한 Windows 계정으로 접속하여 DevelopmentStorageDb20090919라는 이름의 DB를 생성하고 권한을 부여함으로써 Storage Emulator가 사용 가능한 상태로 됩니다.

참조
1. DSInit.exe 설명

Syntax:
DSInit [/sqlinstance:<SQL server instance>] [/forceCreate] [/user:<Windows account name>]

Description:
Initialize the development store for usage by
Reserving http ports for the blob, table and queue services for the current user, and
Creating the database needed by the blob and queue services
Options:
sqlinstance : the name of the SQL Server instance on the local machine that should
be used for Development Storage. The default is SQLExpress.
Use "." for unnamed instance.
forceCreate : recreate the database even if it already exists.
user : user for whom ports are to be reserved. By default it is the current user.

2. DevelopmentStorageDb20090919의 Diagram

image

3. 원격지에 있는 SQL Server를 Development Storage로 사용할 수 있나요?

네.

SDK2.0이후에서는 DSInit.exe를 이용하여 쉽게 설정할 수 있습니다. 주의할 점은 반드시 listening port를 명시해 주어야 한다는 것입니다.

--원격지 서버의 기본 instance를 sqlinstance로 설정하는 예)
C:\Program Files\Windows Azure SDK\v1.4>DSInit /sqlinstance:\\RemoteHostName\MSSQLSERVER,1433

--원격지 서버의 Named instance를 sqlinstance로 설정하는 예)
C:\Program Files\Windows Azure SDK\v1.4>DSInit /sqlinstance:\\RemoteHostName\NamedInatance,2433

4. 위 내용은 Windows Azure SDK 1.4를 기준으로 작성되었습니다.

감사합니다.
한기환

Lync 대화 번역기 서비스

그냥재미로 2011/06/28 10:22 posted by Key Han

업무상 중국이나 미국 엔지니어와 대화할 일이 있는데요. 이거 아주 유용해 보입니다. 기계 번역이라 완벽하지는 않지만, 의미 전달에는 큰 문제가 없어 보입니다.

image

Lync 사용자라면 다음 페이지에서 Add-in 을 다운로드 받아 설치한 후 바로 사용할 수 있습니다. 참, 이것은 Bing에서 제공되는 번역 서비스를 이용합니다.

http://lyncguistic.cloudapp.net/

HTH,
기환

* 실행Run에 직접 입력하여 자주 수행하는 프로그램

 
실행 명령어(Win+r) Program Name (영문) 프로그램 이름 (한글)
dcomcnfg Component Services 구성 요소 서비스
regedit Registry Editor 레지스트리 편집기
cliconfg SQL Server Client Network Utility SQL Server 클라이언트 네트워크 유틸리티
perfmon Performance Monitor 성능 모니터
odbcad32 ODBC Data Source Administrator ODBC 데이터 원본 관리자 
secpol.msc Local Securit Policy 로컬 보안 정책
Eventvwr Event viewer 이벤트 뷰어
services.msc Service 서비스
dsa.msc Active Directory Users and Computers Active Directory 사용자 및 컴퓨터
mstsc Remote Desktop Connection 원격 데스크톱 연결
wf.msc Windows Firewall with Advanced Security 고급 보안이 포함된 Windows 방화벽
compmgmt.msc Computer Management 컴퓨터 관리
notepad Notepad 메모장
ncpa.cpl Network Connection 제어판\네트워크 및 인터넷\네트워크 연결
cmd Command Prompt 명령창
calc Calculator 계산기
profiler SQL Server Profiler SQL Server 프로파일러
ssms SQL Server Management Studio SQL Server Management Studio
SQLServer
Manager10.msc
SQL Server Configuration Manager SQL Server 구성 관리자
lusrmgr.msc Local Users and Groups 로컬 사용자 및 그룹(로컬)
certmgr.msc Certificates 인증서

Hope This Helps
한기환

SQL Unplugged : 300

공장이야기 2011/06/02 23:43 posted by Key Han

오늘 행사에서 "SQL Server 엔지니어가 바라본 개인정보보호"라는 주제로 75분간 발표를 했습니다. 참석해서 경청해 주신분들께 감사드립니다. 발표때 사용했던 PPT 자료는 정리해서 행사 홈페이지에 올려놓을 예정입니다. 데모에 사용했던 스크립트는 별도로 이곳에 올리도록 하겠습니다.

--update : 2011.06.03
* 발표자료(pdf)와 데모 스크립트를 추가하였습니다.

* SHA-2계열의 Hash함수을 위한 Assembly

Expert SQL Server 2008 Encryption : Chapter08. GetHash

http://www.apress.com/downloadable/download/sample/sample_id/877/

 

Note) 이 예제에서 제공되는 코드의 사용에 따르는 책임은 사용자에게 있습니다. 이 예제의 코드는 어떠한 보증도 없이 “있는 그대로” 제공됩니다.


감사합니다.
한기환

Pssdiag and Sqldiag Manager

공장이야기 2011/05/30 13:57 posted by Key Han

Microsoft 기술지원부서에서는 Troubleshooting을 위해서 고객에게 자료 수집을 요청할 때 Pssdiag Configuration Manager라는 GUI툴을 사용해 왔습니다. 이 툴은 각 Architecture(x86, x64, ia64)와 Version(2000, 2005, 2008)별로 수집하고자하는 자료(profiler, blocker script, performance monitor, dmv 등)를 쉽게 설정할 수 있는 GUI형태의 도구 입니다. 설정된 구성 파일들은 별도 파일로 저장되어 고객에게 보낼 수 있는 형태로 만들어 집니다. 고객은 이 파일을 수행하는 것만으로 문제 해결에 필요한 자료를 손쉽게 수집할 수 있습니다. 이 툴이 이번에 codeplex를 통해 공개되었습니다.

Pssdiag and Sqldiag Manager
http://diagmanager.codeplex.com/

chooseversion.jpg

설정화면

이렇게 수집된 자료는 역시 codeplex에 공개된 SQL Nexus를 통해서 보기 좋게 "보고서" 형태로 결과를 보여줍니다.

참조)
Step by Step: ReadTrace를 이용하여 SQL Server에서 수행되는 악성 쿼리 확인하기
http://support.microsoft.com/kb/977826/ko

HTH,
Key 한기환