티스토리 툴바


크리에이티브 커먼즈 라이선스
Creative Commons License

출처 : http://blog.naver.com/allnight123/8973253

 

http://wowhoon.pe.kr 의 박훈님이 제공해 주신 번역문입니다.

좋은글 제공해주신 박훈님께 감사드립니다.


 

데이터 적재

MySQL 서버와 함께 제공되는 클라이언트 프로그램인 mysqldump를 이용해 

MySQL 데이터베이스의 스키마와 데이터를.sql /.txt 의 다양한 포맷으로 

뽑아낼 수 있습니다. DTS는 mysqldump로 생성된 파일들을 이용해 오프라인 

상태에서도 대용량 테이블을 로딩할 수 있다. 

다음은 데이터를 로딩하는 진행과정을 설명한다. 

* mysqldump로 데이터를 추출해 SQL스크립트를 생성한다.

* 데이터를 뽑아내는 스크립트를 수행한다. 

* 추출된 문서를 사용한다. 

(추가적인 주석 :  mysqldump로 SQL 스크립트를 만든다는 것은…

mysqldump는 create table~~~ insert 테이블 값~~ 식의 이것이 쭈욱 이어진 

문서를 생성합니다. SQL서버의 백업과는 틀립니다. 이 스크립트를 

조금 변경하면 SQL서버에 별 무리없이 그대로 데이터를 삽입할 수 있게 되는 

겁니다. - 즉.. 백업본인데… INSERT 구문등으로 이루어진 것이라는 겁니다.)

 

mysqldump로 데이터를 추출하는 스크립트를 생성.

MySQL은 데이터베이스 덤프 또는 데이터베이스 콜레이션을 위한 백업 혹은 

SQL Server로 데이터전송을 위한 유틸리티를 제공한다. 

mysqldump 유틸리티는 데이터베이스 SQL 스크립트를 만들 수 있는 기능을 

제공한다. 

mysqldump를 위한 최소한의 문법은(syntax) 다음과 같습니다: 

 

Shell> mysqldump [OPTIONS] database [tables] 

 

mysqldump에 사용법에 관한 옵션이나 상세한 정보는 이 백서 이후에 나오거나, 

MySql 매뉴얼을 참조하길 바란다. 

mysqldump를 사용하고 난 후에는 당신은 데이터베이스의 SQL 스크립트를 

가지고 있어야 한다. 

 

전송을 위한 스크립트를 셋업

mysqldump로 SQL 스크립트를 만든 후에, SQL서버로 전송을 할 수 있다. 

만들어진 스크립트는 File Transfer Protocol (FTP)같은 

네트워크어플리케이션을 사용하여 MySQL 에서 SQL Server 2000이 설치된 

컴퓨터로 전송한다. 

 

SQL 쿼리분석기를 이용한 추출된 스크립트 사용


만들어진 스크립트로 데이터베이스를 생성하거나 데이터를 집어 넣을 수 있다.

MySqldump로 만들어진 스크립트를 가지고 데이터 베이스를 만드는 방법 중에서 

가장 좋은 방법은 SQL Server 에 포함된 SQL Query Analyzer를 사용하는 것이다. 

당신은 SQL Query Analyzer를 실행하기 위해 시작(Start) 메뉴나 

SQL Server Enterprise Manager에 내장된 SQL Query Analyzer 사용할 수 

있다. (엔터 프라이즈 매니저 -> 도구 -> 쿼리분석기) 

SQL Query Analyzer를 명령 프롬프트에서 isqlw(Command prompt isqlw)를 

이용할 수도 있다. 

정확하게 실행하기 위하여 약간의 추가적인 SQL구문 변환 작업을 해야 한다. 

변환작업은 SQL Script 통하여 그리고 데이터타입(data types)을 SQL Server와 

호환되는 타입으로 변환 해야 하는 것을 기억하길 바란다. 

아래의 다이어그램은 mysqldump로 변환된 스크립트를 보여주며 이는 또한 

ASCII 스크립트(텍스트) 파일로 덤프된 것이다.


 

Microsoft SQL Server 2000 SQL Query Analyzer 다음을 허용한다.

* 쿼리와 다른 SQL스크립트를 생성하고 이를 SQL서버 데이터베이스에 

대해서 수행합니다.

* 미리 정의된 스크립트로 빠르게 일반적으로 사용되는 데이터베이스를 생성할 

수 있다.

* 빠르게 이미 존재하는 데이터베이스 객체들을 복사할 수 있다.

* 알려지지 않은 파라미터를 가지고 저장 프로시져를 수행할 수 있다.

* 저장프로시져를 디버그 할 수 있다.

* 퍼포먼스에 문제가 있는 쿼리를 디버그 할 수 있다.

* 데이터베이스 내부 객체들의 위치를 지정할 수 있다.

* 빠르게 테이블의 로우를 insert, update, 또는 delete 할 수 있다.

* 자주 사용되는 질의를 키보드 단축키로 만들 수 있다.

* Tool 메뉴에 자주 사용되는 명령어를 추가 할 수 있다.

 

어플리케이션 확장

당신이 Microsoft SQL Server에 MySQL 어플리케이션의 데이터 관리부분을 

이동시킨 후에, 당신은 데이터를 보호하고 모든 참조 무결성과 business rule 을 

유지하기 위한 참조 제약을 다루기 위한 T-SQL구문을 가지고 있을 수 있다.

ADO, OLE DB, 그리고 ODBC 와 같은 데이터 베이스 응용프로그램 인터페이스 

(APIs)는 여러 가지 응용프로그램을 통하여 사용된다. 

물론, Microsoft Visual C++, Microsoft Visual Basic, 혹은 Microsoft Visual J++과 같은 

개발 시스템 API를 이용하여 Access할 수 있는 여러가지 방법을 제공한다.

부가적으로 어플리케이션이 확장되면, 당신은 Microsoft SQL Server를 이용하여 

어플리케션을 바꾸지 않고 더 좋은 시스템 (larger computers)로 이동할 수 있다. 

SQL Server는 자동으로 하드웨어 정보를 인식하고 자체적으로 최적의 메모리, 

I/O와 프로세스 사용량을 설정합니다

 

인터넷으로 부터 데이터 접근

SQL Server는 Web기반의 인터페이스에 어플리케이션을 확장하는 기능을 제공한다.

이 기능은 언제 어디서든지 어플리케이션에 접속을 허락합니다. 

SQL Server는 IIS Web Server를 사용하고 SQL Server에 저장된 데이터에 빠르고 

효율적인 사용자 인터페이스를 제공하기 위해 IIS Web Server와 

Active Server Pages(ASP) 내에 ActiveX Data Object (ADO)를 사용 하는 것에 의해 

SQL Server는 IIS와 통합 될 수 있다.

상세한 정보는 http://www.msdn.microsoft.com 에서 찾을 수 있다.

 

보안

SQL Server 2000의 데이터 베이스의 보안은 강력하고 유지하기 쉽다. 

SQL Server와 Mysql에 양쪽의2단계 수준의 보안에 대해서 생각하는 것은 상당히 

중요하다.

1) 서버의 접근 그리고 2) 개벌적인 데이터베이스의 접근 

MySQL은 서버로의 접근을 IP주소 혹은 완전한 도메인 이름에 의한 접근을 

제한하는 것에 의해 보안성을 유지 하는 유일한 방법이 있으나, 

도메인 명('%' 같은 와일드카드)로의 접근은 허용한다.

SQL Server는 사용자 계정을 요구한다, 그것은 운영체제(Windows Log On)에 의해 

관리되거나 SQL Server의 마스터 데이터 베이스 내에 저장할 수 있다.

SQL Server는 역할에 따른 그룹별로 접속을 제공한다. 이것은 그룹에 의한 

공통접근을 수립하는 것으로 관리를 쉽게 할 수 있습니다.

다음 단계에서는 Microsoft SQL Server 에서 제공하는 Enterprise Manager Tool을 

이용하여 데이터베이스로의 접근뿐만 아니라 서버로의 접근도 알아 보도록 하자.

1. Enterprise Manager를 열고 보안 폴더까지 연다. 

로그인 아이콘을 선택하고 오른쪽 마우스를 누른 후 새 로그인 을 선택한다.

SQL Server 로그인 속성 대화 상자가 표시됩니다. 이름 이란 항목에 Login 

이름을 입력한다. 이것은 MySQL의 사용자 이름과 유사하다. 

인증에서 SQL서버상의 인증을 사용하기 위해서 SQL Server인증을 선택한다.

 

2. 기본값이란 항목에 기본 데이터베이스와 언어를 선택한다.

 

3. 대화상자 최상위의 탭에서 서버역할을 선택한다. 이 예제에서의 역할은 

sysadmins(시스템 관리자)이다. 그리고 이는 MySQL에서 root 접근과 같다

다음 데이터베이스 엑서스 탭을 보자. 

이 항목은 SQL Server상에 물리적으로 있는 모든 데이터 베이스에 접근을 

제공한다. 지금의 경우는 1개의 접근데이터 베이스를 제공한다.

데이터베이스가 설정된 후에는 데이터 베이스의 역할을 설정할 수 있다. 

기본적으로, 모든 사용자는 public접근이 설정되어 있다. 이 규칙을 적용하기 

위해서는 퍼미션이 필요하다. 이 그림에서 선택되는 추가 역할은 

db_owner이다. 그것은 데이터베이스 제한 없이 접속 할 수 있는 권한을 

허용한다. 그러나 전체는 혹은 다른 SQL Server에 접속은 허락되지 않는다. 

 

5. OK를 클릭하고 난 후 암호 확인 대화 상자가 나온다. 앞에서 입력한 암호를 입력한다.

 

새로운 로그인은 엔터프라이즈 메니저에서 시각적으로 표시된다. 

당신은 'sa'라고 표시된 계정이 있다. 이 시스템 관리자 계정은 SQL Server의 

설치 동안에 패스워드를 가지고 있어야 한다. 

이 로그온에 대하여 공백을 허용하는 옵션이 있다. 하지만 비밀번호는 가급적 

반드시 필요하다. 



Microsoft SQL Server 로그인의 생성에 관한 더 많은 정보를 원한다면 

SQL Server Books Online에서 ""Managing Security" 를  참조하길 바란다. 

 

데이터 베이스 권한

SQL Server 2000은 데이터정의 언어와(DDL) 데이터 조작언어(DML)문장 사용권한 

제한을 통한 보안을 제공한다. 

이는 Ligin을 생성하는 단계와 유사하다. SQL Server에 권한을 할당하는 것은 

엔터프라이즈 메니져를 통하여 쉽게 작업 할 수 있다.

 

데이터 베이스 조작 언어 사용권한 

1. 엔터프라이즈 매니저를 열고 데이터 베이스 폴더를 연다. 

사용자를 선택하고 오른쪽 마우스 버튼을 클릭하고  등록정보를 선택한다. 


2. 사용권한 버튼을 클릭한다.

3. 사용권한 창에는 테이블들, 뷰, 그리고 저장프로시저 들과 같은 

데이터 베이스 객체들 모두에 DML문장을 설정하는 기능을 제공한다. 

권한을 설정한 후에 Ok 버튼을 클릭한다. 

 





데이터 정의 언어 사용자 권한


DDL문장을 데이터 베이스로 접근을 허용하기 위하여 당신은 

데이터베이스의 등록정보를 선택해야 한다. 

변경하고자 하는 데이터 베이스 아이콘을 클릭하고 오른쪽 버튼을 누른 후 

등록정보를 선택한다.

 

2. 다음으로 사용권한 탭을 선택한다.


3. 적당한 권한을 선택한 후에 OK 버튼을 클릭한다.

 


 MySQL을 MSSQL으로 마이그래이션 - (3) 문서의 끝입니다

 

Posted by 키르히

댓글을 달아 주세요