SQL Server 2008 데이터베이스 분산 조회 지식

회사 의 한 시스템 을 접 할 때 회 사 는 SQL Server 2008 데이터 베 이 스 를 사 용 했 는데 그 안에 여러 개의 데이터 베이스 간 의 조회 와 관련 되 었 고 데이터 베 이 스 는 분포 식 이 며 데이터 베 이 스 는 여러 대의 서버 사이 에 분포 되 어 있 으 며 각 데이터 베 이 스 는 각자 책임 을 다 하여 서로 다른 모듈 기능 의 데 이 터 를 저장 하 는 것 을 책임 진다.이 안 에는 데이터베이스 의 분포 식 조회 가 언급 되 어야 한다.
분포 식 조회 지식 을 보충 합 니 다.
분산 식 조 회 는 여러 종류의 데이터 원본 에서 데 이 터 를 방문 합 니 다.이 데이터 원본 들 은 같은 컴퓨터 나 다른 컴퓨터 에 저장 할 수 있다.Microsoft SQL Server 는 OLE DB 를 사용 하여 분산 조 회 를 지원 합 니 다.
SQL Server 사용 자 는 다음 과 같은 내용 을 분포 식 으로 조회 할 수 있 습 니 다.
여러 SQL Server 인 스 턴 스 에 저 장 된 분포 식 데이터
  • OLE DB 를 사용 하여 인터페이스 에 접근 할 수 있 는 각종 관계 와 비 관계 데이터 원본 에 저 장 된 이류 데이터
  • OLE DB 액세스 인 터 페 이 스 는 행 집합 이 라 고 불 리 는 표 형식 대상 에서 데 이 터 를 공개 합 니 다.SQL Server 는 Transact-SQL 구문 에서 SQL Server 표를 참조 하 는 것 처럼 OLE DB 액세스 인터페이스 에 있 는 줄 집합 을 참조 할 수 있 습 니 다.
    외부 데이터 원본 의 표 와 보 기 는 SELECT,INSERT,UPDATE,DELETE Transact-SQL 구문 에서 직접 참조 할 수 있 습 니 다.분산 조 회 는 OLE DB 를 기본 인터페이스 로 사용 하기 때문에 SQL 조회 프로세서 가 있 는 전통 적 인 DBMS 시스템 뿐만 아니 라 복잡 하고 다양한 기능 을 가 진 데이터 원본 이 관리 하 는 데 이 터 를 방문 할 수 있다.데이터 가 있 는 소프트웨어 가 OLE DB 액세스 인 터 페 이 스 를 통 해 표 형식 줄 에 데 이 터 를 집중 적 으로 공개 하면 분포 식 조회 에서 이 데 이 터 를 사용 할 수 있다.

    회사 의 업 무 는 서로 다른 서버 의 데이터 베 이 스 를 자주 사용 해 야 하기 때문에 회사 의 데이터 베 이 스 는 모두 링크 서버 를 만 들 었 다.이 링크 서버 를 만 들 면 이 링크 서버 의 별명 을 사용 하여 SQL 문장의 작성 과 sql 비용 을 간소화 할 수 있 습 니 다.
    SQL SERVER 2008 관리 도 구 를 사용 하면 링크 서버 를 직접 인터페이스 화 할 수 있 습 니 다.여기 서 sql 문 구 를 사용 하고 시스템 저장 과정 을 이용 하여 링크 서버 를 추가 하 는 방법 을 알려 줍 니 다.여 기 는 두 개의 저장 과정 을 사용 해 야 합 니 다.
    
    sp_addlinkedserver
    sp_addlinkedsrvlogin
    하 나 는 링크 서버 를 추가 하 는 것 이 고,하 나 는 링크 서버 연결 로그 인 인증 을 추가 하 는 것 입 니 다.구체 적 으로 이 두 개의 저장 프로 세 스 매개 변수 의 미 는 마이크로소프트 매 뉴 얼 을 참고 하 시기 바 랍 니 다.이 저장 프로 세 스 를 실행 하고 로그 인 한 사용 자 는 Sysadmin 권한 이 있어 야 실행 할 수 있 습 니 다.
    현재 10.15.25.100 에 있 는 db 에서 10.15.24.101 이전 FlieDB 01 표 의 정 보 를 사용 해 야 한다 고 가정 합 니 다.10.15.25.100 에서 다음 과 같은 SQL 문 구 를 진행한다.
    
    exec sp_addlinkedserver
    @server='SZDB01', --            
    @srvproduct='',
    @provider='SQLOLEDB',--    SQLOLEDB  
    @datasrc='10.155.24.101'--DB  
    exec sp_addlinkedsrvlogin
    'SZDB01',--        
    'false',
    NULL,
    'szUSER',--     
    'Password@123'--    
    --                 
    select * from openquery([SZDB01],'select file_No,file_Name from FileDB01.dbo.getFileList()') as tableA --   DZDB01               
    여러 개의 연결 서버 를 추가 합 니 다.이것 은 그 중의 하나 이다.
    또 하 나 는 opendatasource 를 사용 하 는 것 입 니 다.이것 은 SQL 의 함수 입 니 다.지정 한 DB 를 열 수 있 고 이 함수 의 실행 권한 이 매우 낮 습 니 다.기술 수첩 에 서 는 누구나 이 함 수 를 실행 할 수 있다 고 합 니 다.이 함수 도 hacker 가 자주 사용 하 는 데이터 폭발 표 의 한 수단 입 니 다.현재 SQL Server 2008 매 뉴 얼 을 보면 모든 사람 이 실행 할 수 있 는 권한 이 있다 는 설명 입 니 다.
    이 함 수 는 자주 사용 되 지 않 는 조회 에서 만 사용 할 수 있 습 니 다.
    간단 한 예 를 들다.
    
    select * from opendatasource('SQLOLEDB','Data Source=10.155.24.100;User ID="szUSER";Password="Password@123"') as tableA
    이것 도 위 에 대한 일종 의 실현 이다.
    opendatasource 는 mdb 와 같은 파일 도 직접 열 수 있 습 니 다.이런 것 을 나 는 실험 하지 않 았 다.기술 은 책 에서 설명 되 어 있다.
    
    select * from opendatasource('Microsoft.Jet.OLEDB.4.0','Data Source="d:/abcd.mdb"') 
    총결산
    이상 은 이 글 의 모든 내용 입 니 다.본 고의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가 치 를 가지 기 를 바 랍 니 다.여러분 의 저희 에 대한 지지 에 감 사 드 립 니 다.더 많은 내용 을 알 고 싶다 면 아래 링크 를 보 세 요.

    좋은 웹페이지 즐겨찾기