2013년 2월 27일 수요일

팩스서버로 안들어가고 팩스가 종이로 나와요

팩스 서버를 운영하면서 팩스기기나 팩스기능이 있는 복합기를 사용하는 경우 팩스 서버로 팩스가 안들어가고 팩스기기로 들어가서 종이로 인쇄가 되는 경우가 있다..

이거 종이로 나온다고 무작정 팩스서버 서비스 죽였다 올리거나 껏다 키면 병신인증이다..
원인은 팩스서버보다 팩스기기가 팩스를 먼저 잡기 때문에 이러한 현상이 발생된다..
팩스기기의 환경설정 중에 벨을 몇번 울리면 받을 껀지 설정하는 부분이 있을꺼다.
벨을 울리는 횟수를 최대한 높게 잡아주자.. 그리면 팩스 서버쪽으로 넘어가서 파일로 저장된다.. 단, 팩스서버에 팩스모뎀의 벨 울리는 횟수를 최대한으로 작게 잡아줘야한다.
간혹 팩스기기에서 벨 횟수 부분이 리셋되어버려 기본값(최소)로 잡히는 경우가 있으니 좀 확인 하고 살자..이딴걸로 팩스가 종이로 나온다고 제발 징징대지말자... 짜증난다..

2013년 2월 25일 월요일

Windows 팩스(FAX) 서버에 왜 안붙을까??.

윈도우 팩스서버 설정하는 법은 다른 곳에서 알아서 오시길....

지금 적으려는 중심 내용은 어떻게 하면 윈도우 클라이언트에서 윈도우 팩스를 공유한 서버에 붙을 수 있는가에 있다.

일단 서버는 설정 되어있었고...

클라이언트에는 윈도우 팩스 기능을 추가 해놨고...

근데 이게 네트워크로 팩스서버 잡는게 안된다.. 권한이 없다나?

그래서 팩스 서비스에 계정을 추가 해줘보고, 팩스의 보안에도 계정을 줘봐도... 안되더라..

그러는 와중에 팩스 서버가 64비트인데 드라이버 배포시 32비트가 없어서 설치가 안되는 건가 해서 봤더니

역시나 32비트에 체크가 안되어 있다... 그래서 설치를 시도했지만....아에 없다 32비트 드라이버가 뭐 구글링해보면 어디어디 가면 있을꺼다를 봤는데도 amd64라는 폴더만 보인다...

그래서 DVD설치본을 사용해서 설치를 시도 했지만....DVD 드라이브가 인식이 안된다...젝일...


** 추가내용
DVD로 시도했지만 안된다. 답답한 마음에 fax모뎀에 전화했다.
담당자 왈 "아... 아마도 팩스 모뎀 공유는 안될겁니다." 씨.....
3BON USB56K 팩스모뎀 사용자는 이 팩스모뎀을 64비트 운영체제에 설치해서 공유를 하면 32비트 추가 드라이버를 설치 할 수 없어 32비트 운영체제는 그 공유를 사용할 수 없다.. 꺼꾸로 32비트에 설치했으면 64비트는 사용할 수 없다.....

삽질했다..



2013년 2월 22일 금요일

MS-SQL 에러 18456



날짜 2013-02-22 16:45:50
로그 SQL Server (현재 - 2013-02-22 16:00:00)

원본 로그온

메시지
Login failed for user '[시스템명]\[계정]'. 원인: 명시적으로 지정된 데이터베이스를 열지 못했습니다. [클라이언트: <local machine>



이게 말이야......
이벤트 로그에 MSSQL 알림 메시지가 10초마다 뜨는거야......--;;;
알고봤더니 쌓이고  쌓인게 2GB? 헐~
저 위에 메시지는 mssql 이벤트 로그야 로그가 너무 많이 쌓여서 윈도우 이벤트로그는 지워 버렸어..
자 로그를 함 보자고~
클라이언트 : <xxx> 여기는 어디서 접속을 할려고 했느냐고 알려주겠지..
근데 어라 윈도우 게정인데 안된다네...?
데이터베이스를 열수 없다니.......
접속할려는 데이터베이스가 사라졌나??? 하고 원인을 찾았어..
근데, 그냥 찾을 리가 있겠냐
구글링 해보니~ sql server profiler 돌려서 알아보라고 하더라고 <여기: 외국인 꺼>
그래서 하라는대로 프로파일러 새 추적을 만들고 이벤트 선택 항목에서 아래에 놈들만 추가했지

  • Audit Login Failed (under Security Audit)
  • User Error Messages (under Errors & Warnings)
  • Errorlog (under Errors & Warnings). This is optional.
어!! 접속할려는 DB이름은 나왔어!! 그래서 sql 구성관리자도 확인하고 DB도 확인했어..
근데 계속  뜬다~?  그래서 프로파일러 이벤트 선택 항목에 좀 더 추가 핼볼까 해서 eventlog (under errors & warnings) 만 추가했더니 주기적으로 먼가 돌더만 그래서 봤더니 sql agent 작업이 걸려져 있더라 그래서 작업 삭제하고 서버 개체 > 연결된 서버 > 없어진 DB 삭제 했더니
로그가 더이상 안뜨더라....

1. 저 위에 메시지 발생하면
2. 프로파일러 돌려서 접속할려는 DB가 있는지 만약 없다면 없어진 DB와 관련된 agent 작업이나 유지보수 계획이 걸려 있는지 확인해 봐라
3. 프로파일러 상당히 유용하다 


2013년 2월 15일 금요일

2013년 2월 13일 수요일

MS-SQL 암호화 해보자. - 2


/*
    MS-SQL 2005 이상 대칭키 사용 방법
    대칭키(Symetric)와 인증키(Certificate)를 OPEN하고 패스워드(Password)를 입력한다.
    ※옵션(Option) : 패스워드는 인증키 생성시 입력 했으면 입력 해야함
    KEY_GUID의 값을 넣기 위한 변수 선언 및 Symetric Key의 name 값으로 KEY_GUID를 가져와야한다.
*/
-- 1. Start Session Open
/*
    이거 세트로 해야되고 GUID 값 받는거 선언해야하는거 이해하느라 맨땅에 하루 반나절 해딩했다...
    해딩은아니고 이곳 저곳 찾아보다가 막 해보다가 알게되었어...
*/
USE [DB_NAME];
OPEN SYMMETRIC KEY [SYMMETRIC_KEY_NAME]
DECRYPTION BY CERTIFICATE [CERTIFICATE_KEY_NAME]
WITH PASSWORD = '[CERTIFICATE_PASSWORD]'
DECLARE @GUID UNIQUEIDENTIFIER
SET @GUID = (SELECT KEY_GUID FROM SYS.symmetric_keys WHERE name='[SYMMETRIC_KEY_NAME]')
-- 1. End Session Close 여기 까지가 암호화/복호화 준비 과정 [이 구문은 세트(SET) 라고 보면 된다.]

-- 2. Start ENCRYPTION
/*
    수정(UPDATE)를 한다고 치자. 물론 그전에 암호화 해서 넣을 컬럼(COLUMN)을 만들어 줘야겠지?
    이놈은 암호화기 때문에 문자가 엄청 길어질꺼잖아 그래서 형식(TYPE)을 VARBINARY를 해서 만들어 줘야해
    여기서 잘봐야 할 건 저기 ENCRYPTBYKEY 구문이야, 저걸 해줘야 당근 암호화가 되겠지?
    삽입/입력(INSERT) 도 마찬가지로 ENCRYPTBYKEY를 해줘야겠지 대칭키는 ENCRYPTBYKEY 를 써줘야하고 다른 암호화 방식은
    ENCRYPTBYPHASE(?) 맞나 암튼 그런걸로 해줘야 해.. 일단 대칭키 방법이 가장 빠르다니깐 뭐 이걸 많이 쓰는 것 같어
 
*/
UPDATE  TEST_TABLE  SET ENCRYP_COLUMN = ENCRYPTBYKEY(@GUID, NORMAL_COLUMN)
--또는
UPDATE  TEST_TABLE  SET ENCRYP_COLUMN = ENCRYPTBYKEY(@GUID, '멍청이')
-- 2. End ENCRYPTION (여기 까지가 암호화)

-- 3. Start DECRYPTION
/*
    복호시 CAST나 CONVERT 를 사용해서 TYPE 변환을 해줘야 해. WHY? 그렇게 하지 않으면 이상한 문자로 깨져 나와..
    그리고 복호시에는 데이터 타입이 문자(String)이면 NVARCHAR, NCHAR, 숫자면 VARCHAR, CHAR로 해야되.
*/
SELECT col1, CONVERT(VARCHAR(MAX),DECRYPTBYKEY(col2)) FROM TEST_TABLE
SELECT col1, CAST(DECRYPTBYKEY(col2) AS VARCHAR(MAX)) FROM TEST_TABLE
-- 3. End SECRYPTION (여기 가지가 복호화)

-- 4. Start Session Close
/*
    그리고 다했으면 세션(SESSION)을 받아줘야 해. 무슨 세션이냐고? 당근 암호화 세션이지..
*/
CLOSE SYMMETRIC KEY [SYMMETRIC_KEY_NAME]

-- 4. End Seeion Close


MS-SQL 암호화 해보자. - 1

빨간 글씨는 수정한 부분임.

/*
    MS-SQL 2005 부터 지원되는 자체 암호화 기능 중 대칭키를 사용해 보도록 하자.
    다른 말론 컬럼(COLUMN) 암호화...
    먼저 마스터(데이터베이스 마스터) 키를 생성하고, 그 다음 대칭키를 사용하기 위해 인증서를 생성하고 다음은 대칭키를 생성한다. 자세한 설명은 그림봐라..
*/
암호화 하는 방법은 4가지야... 개콘 네가지..
1) 비대칭키를 사용하여 암호화 : EncryptByAsmKey()
2) 인증서를 사용하여 암호화 : EncryptByCert()
3) 대칭키를 사용하여 암호화 : EncryptByKey()
4) 패스워드를 사용하여 암호화 : EncryptByPassPharse()
※ 패스워드를 사용한 암호화는 소스에 하드코딩 됨으로 보안이 쥐약이겠지 그래서 패스워드 방식 빼고 사용하면 되겠지?

근데 왜 대칭키를 쓰냐고 물으신다면 비대칭키, 인증서, 대칭키 방법중 가장 암호화/복호화가 빠르니깐 쓴다.. 데이터가 졸라 많은데 암호화 해봐라...속 터지지...
당근 빠르면 암호화 강도는 대칭키나 인증서에 비해 약하겠지?
그리하야... 데이터는 대칭키로.. 대칭키는 인증서로 암호화를 한다고 한다.

자~~ 이정도면 대칭키를 만들어보자.
백문불여일행...

순서를 이래.. 마스터키 생성/백업 > 인증서 생성/백업 > 대칭키 생성/백업

자~~ 따라오너라~




1. 마스터키 생성 / 백업

-- 마스터 키 생성
-- 만약 마스터 키가 기존 것이 있다면 지워야한다 */
-- 지우는건 아래 쿼리로 지운다.
USE [DB_NAME]
go
DROP MASTER KEY
-- 여기까지가 지우는 마스터키 지우는 쿼리
USE [DB_NAME]
CREATE MASTER KEY
ENCRYPTION BY PASSWORD = '[MASTER_KEY_PASSWORD]' -- 마스터키 생성 패스워드

/* 마스터 키 백업 */
OPEN MASTER KEY DECRYPTION BY PASSWORD = 'MASTER_KEY_PASSWORD'; -- 마스터키 생성시 사용한 패스워드
BACKUP MASTER KEY TO FILE = 'D:\CERTKEYS\MASTER_BACKUP_KEY' --마스터 키를 백업 할 경로 (미리 디렉토리를 생성해 놔야 한다)
ENCRYPTION BY PASSWORD = 'MASTER_BACKUP_KEY_PASSWORD' -- 마스터키 백업 패스워드

/* 마스터 키 조회 */
SELECT * FROM [DB_NAME].sys.symmetric_keys




2. 인증서 생성 / 백업

/* 인증서 생성 */
/* 만료일자(expiry_date) 지정하지 않으면 기본 값 (1년)으로 지정된다... 그래서 그냥 듬뿍 인심 써서 2050년 으로...
*/

CREATE CERTIFICATE [CERTIFICATE_NAME] -- 인증서 이름
ENCRYPTION BY PASSWORD = '[PASSWORD]' -- 인증서를 생성하는 패스워드
WITH SUBJECT = '[SUBJECT]'  --이게 무슨인증서요~ 하는 약간 디테일한 이름 지어줌
, EXPIRY_DATE = '12/31/2050' -- 만료일자 지정

/* 인증서 백업 */
BACKUP CERTIFICATE [CERTIFICATE_NAME] TO FILE = 'D:\CERTKEYS\CERTKEYBACKUP' --인증서 백업 경로 (미리 디렉토리를 생성해놔야 한다.)
WITH PRIVATE KEY (
FILE = 'D:\CERTKEYS\PRIVATEKEY' -- 개인키
, ENCRYPTION BY PASSWORD = '[PRIVATE_BACKUP_KEY_PASSWORD]' --개인키 암호화  패스워드
, DECRYPTION BY PASSWORD = '[PRIVATE_RESTORE_KEY_PASSWORD]' -- 개인키 암호 해독용 패스워드
)
/* 인증서 조회 */
SELECT * FROM [DB_NAME].sys.certificates




3. 대칭키 생성 / 백업

/* 대칭키 생성 */
CREATE SYMMETRIC KEY [SYMMETRIC_KEY_NAME] -- 대칭키 이름
WITH ALGORITHM = AES_256 -- 암호 알고리즘이다. 강하면 강할수록 조타~
, IDENTITY_VALUE = 'DATA ENCRYPTION KEY 2013/02/12' -- 대칭키 다시 만들때 사용하는 데이터
, KEY_SOURCE = 'ACCOUNT DATABASE SYMMETRIC KEY' -- 대칭키 다시 만들때 사용하는 데이터
ENCRYPTION BY CERTIFICATE [CERTIFICATE_NAME]

/* 대칭키 조회 */
SELECT * FROM [DB_NAME].sys.symmetric_keys

/*
    대칭키는 백업과 복원이 없어..그래서 query문장을 보관해야해... 안그럼 다른 DBMS에 복사한다거나 복구 할 때 복호화를 할 수 없을 수가 있어.
    그래서 query문을 그대로 보관해야해 잘... 특히 IDENTITY_VALUE 나 KEY_SOURCE 항목이 중요해 이게 대칭키를 구분해주는 열할을 하는가봐 난 자세히는 몰라
    직접 해보고 내용을 추가할 께
*/


----- 2편 

관련링크
http://blog.taks.pe.kr/20
http://blog.naver.com/lovebabyyh/80061399950
http://purumae.tistory.com/94
MS SQL 대칭키 암호화 복호화 - http://social.technet.microsoft.com/Forums/ko-KR/sqlserverko/thread/b1cdf310-bd20-4a7f-a666-8336b50d0fe7/

2013년 2월 12일 화요일

MS-SQL Database, Logical Name 변경하기

MS-SQL 데이터베이스의 Logical Name 의 이름을 변경 하고자 할 때는 아래와 같이 변경하면 된다.
DB 복원이나 복사 후 변경할 때 사용.

/* MDF 변경 */
alter database MyDatabase modify file (NAME = 'oldMdfName', NEWNAME = 'NewMdfNAme')
                        [DB 명]                                          [현재 mdf 파일 logical name]  [새로운 logical name]
/* LDF 변경 */
alter database MyDatabase modify file (NAME = 'oldLdfName', NEWNAME = 'NewLdfNAme')
                        [DB 명]                                          [현재 ldf 파일 logical name]  [새로운 logical name]

2013년 2월 6일 수요일

hyper-v 가상 시스템이 일시중지 되는 경우

외주업체에서 전화가 왔다.

중계서버로 만든 가상시스템이 연결이 안된다는거다...

아....... 머지.. 들어가봤다. 터미널이 접속안된다. 이거 뭐지...

가상 시스템이 설치된 물리 서버에 들어가서 hyper-v 관리자를 열었다.

오쒸... 일시정지 되어있다. 다급한 마음에 다시시작 버튼을 눌렀다.

돌아간다. 아.... 다행이다. 근데 왜이렇지?

똥누고 똥까루를 덜 닦은 심정이었다.

이벤트로그를 함 봐보자. 응용프로그램 로그...........졸라 많다. ...... hyper-v 만 볼려는데 이건 아니다..

아.. 2008 R2 이벤트 뷰어에는 응용 프로그램 및 서비스 별로 이벤트롤 볼수 있게 되어있다..

다행이다.. microsoft - hyper-v..음.... hyper-v 항목만 9개다... 추측으로 잘 돌아가다가 일이 발생한 것이니깐. 음... hyper-v-worker겠지? 하고 들어가 본다.... 젠장...... 아니다...

바로 위에 hyper-v-vmms 였다. 경고와 주의 아이콘이 나를 반긴다. 야~~~~ 기분 좋~~다~

일단 찍어보자.

이런 메시지가 있다. event id 16050, source Hyper-v-vmms
'XXXXX서버'의 'E:\VHD\XXXXXXX\'에 디스크 공간이 곧 부족해집니다. (가상 컴퓨터 ID 2B3C3803-5FC5-4F1A-A7B4-4E4F266534BC)

가상서버의 가상 하드디스크가 다 찬건가? 졸라 다급하게 가상 서버의 하드디스크를 확인했다. 왠걸........ 텅텅 비었다.
이 씨.... 이건 뭐지...라고 하는 순간 또 서버가 일시 정지 되었다.....

그럼 가상하드디스크가 있는 물리 하드디스크가 문제인가? 확인해봤다.

왠걸........ 99% 찾다. 젝일....--; 오래된 백업 파일 날리려서 공간좀 확보해줬더니 잘된다.

끝. -_-;

아....짱나......빨리 모니터링 시스템 구축해야하는데... 여유가 없다..젠장..

요약
1. 물리서버에 가상서버가 설치된 물리디스크에 용량이 FULL이 되면
2. 가상서버가 자동으로 일시정지 된다.
3. 고로....물리디스크 FULL이 안나게 좀 해줘라...

2013년 2월 5일 화요일

MS-SQL 2008 구성관리자 클라이언트 구성 백업 및 복구

mssql의 구성관리자라는게 있어 여기에 DB에 접속하는 IP랑 포트 정보를 입력해 놓고 alias 즉, 별칭을 부여해서 접속 할 때 마다 일일이 IP랑 포트를 입력하는 수고를 덜게 할 수 있거든. 참으로 편리하지.
근데 이걸 열심히 쓰다보면 한두개씩 설정해 놓은 값이 늘어나겠지.
근데 내 PC나 서버가 뻑이나서 다시 설정해야하는데 저걸 언제 일일이 다 입력하냐고..
그래서 내가 쉽게 백업하고 복구 하는 방법을 알려 줄께.
방법은 간단해. 레지스트리 알지? 이것도 레지스트리에 값을 저장 하고 있거든.
그래서 이걸 그냥 내보내기 해서 받으면되. 그럼 백업이 되겠지?
복구는 어떻게 하냐고? 그냥 백업받은 파일을 더블클릭만 하면되.
이게 구성관리자 내용이 있는 위치야.

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\ConnectTo]

2013년 2월 4일 월요일

아웃룩 일정 공유 방법

오피스 아웃룩을 사용하여 일정을 공유 해보자..

오피스 아웃룩에 일정공유기능이 있는데, 이게 기능이 조아... 다른사람이랑 일정도 공유 할 우 있고... 근데 의외로 일정공유 하는 방법을 잘 몰라서 메일 기능만 사용하는 사람이 많아..
그래서 잘 좀 사용하라고 일정공유 방법을 좀 알려 줄려고 해.

아웃룩 2010을 기준으로 했으니깐 참고해..

자~ 그럼 한번 설정 해보자~



먼저 일정을 공유하자 (공유되도록 권한을 설정)

1. "일정"을 클릭해 (위치는 기본적인 레이아웃에서는 프로그램 왼쪽 아래에 있다)
2. "내 일정 - 일정" 이라는 기본 일정표(달력)가 나올꺼야
3. 이 "일정"이라는 놈을 선택해 그리고 상단 리본메뉴에 "일정 사용권한"을 클릭해
4. 그럼 "일정 속성"이라는 창이 빵~ 하고 뜰꺼야 거기에 보면 "기본" 이라는 놈도 있고 "익명" 이라는 놈도 있어
5. 그럼 이제 "추가"를 눌러서 "사용자 추가" 창이 뜨게 하고 이름을 검색하든 클릭을 하든 선택을 하고 추가를 해줘
6. 자~ 그럼 "사용 권한" 탭의 사용자 리스트에 좀 전에 추가한 사용자가 있을꺼야
7. 추가한 사용자를 선택하고 "권한 수준"을 "검토자"로 바꿔주자. 안그러면 일정이 공유가 안된다.
이제 공유하기는 끝난거야.

그럼 남에껄 가져와야겠지?

일정 가져오기는

1. 상단 리본메뉴에 "일정 열기"라는 부분이있을 꺼야 거기에 세부 메뉴를 보면 "주소록에서" 라고 하는 항목이랑 "공유 일정 열기" 라는 항목이 있을꺼야. 걍 "주소록에서" 항목 선택하자 "공유일정열기"는 설정하기가 귀찮아
2. "주소록에서"를 누르면 "이름선택 : 전체 주소 목록" 창이 뜰거야 거기서 이름을 검색하든지 선택하든지 해서 왼쪽 아래에 "일정" 을 눌러 추가를 해줘 그럼 가져오기가 끝난거야.



** 참고로 "일정속성"에 "기본" 이라는 항목은 인증된 사용자 전체를 지칭 한다고 보면되, 사람이 많아서 하나씩 설정하기 귀찮으면 이 "기본"이란 놈의 권한을 "검토자"로 해버리면되.