다음을 통해 공유


대량 로드 보안 고려 사항(SQLXML 4.0)

적용 대상: SQL Server Azure SQL Database

다음은 XML 대량 로드를 사용하기 위한 보안 지침입니다.

  • 대량 로드 작업이 트랜잭션으로 수행되도록 지정하는 경우 TempFilePath 속성을 사용하여 임시 파일을 만들 폴더를 지정합니다.

    대량 로드 프로세스는 다음 권한으로 이러한 임시 파일을 만듭니다.

    • 대량 로드 프로세스에 읽기/쓰기/삭제 액세스 권한이 부여됩니다.

    • Microsoft SQL Server에서 이러한 파일에 액세스할 계정을 알 수 갖지 않으므로 모든 사용자에게 읽기 권한이 부여됩니다. 이러한 임시 파일이 포함된 폴더에 대한 적절한 사용 권한을 설정하여 이러한 임시 파일에 대한 액세스를 제한할 수 있습니다.

  • XML 대량 로드 자체에는 사용 권한 설정이 없습니다. 대량 로드에서는 데이터베이스가 올바로 설정되어 있고 사용자 컨텍스트(즉, 대량 로드에 사용하도록 설정된 로그인)에 적절한 사용 권한이 설정되어 있다고 가정합니다.

  • 비트랜잭션 모드에서는 대량 로드 프로세스 중에 오류가 발생하면 데이터가 부분적으로 로드된 상태로 남을 수 있습니다. 대량 로드는 이 경우의 지점에서 중지됩니다. 트랜잭션 모드를 사용하면 이 문제를 완화할 수 있습니다.

  • 대량 로드 오류가 발생할 때 오류 정보에 데이터베이스에 대한 정보가 포함될 수 있습니다. 예를 들어 테이블이나 열 이름 또는 열 형식 정보가 포함될 수 있습니다. 대량 로드를 사용할 때는 오류를 사용자에게 직접 노출하기 보다는 대량 로드 프로세스에서 오류를 catch하고 일반 오류 메시지를 반환하도록 해야 합니다.

  • 대량 로드는 작동하는 데이터의 양에 대한 제한을 설정하지 않습니다. 대량 로드에서는 로드할 데이터의 크기를 확인하지 않습니다. 대량 로드 작업을 실행할 때 지정한 파일을 처리하는 데 필요한 메모리가 충분한지, 그리고 로드하는 데이터를 저장할 공간이 데이터베이스에 있는지는 사용자가 확인해야 합니다.

  • 대량 로드에서는 코드로 지정된 데이터를 사용하지 않습니다. 데이터 입력은 어떤 방식으로도 실행되지 않습니다. 입력 데이터의 모든 코드 또는 명령은 일반 데이터로 처리되며 실행되지 않습니다.

  • 대량 로드는 XML과 SQL Server 데이터 모델 간의 차이점에 따라 지정된 데이터의 서식을 변경할 수 있습니다. 예를 들어 시간을 지정하는 형식은 다릅니다. 대량 로드는 이러한 차이를 해결하려고 시도합니다. 따라서 일부 정밀도 정보가 손실될 수 있습니다.

  • 대량 로드에서는 데이터를 처리하는 데 걸리는 시간에 제한이 없습니다. 처리가 완료되거나 오류가 발생할 때까지 처리가 계속됩니다.

  • 대량 로드는 데이터베이스 내에서 임시 테이블을 만들고 삭제할 수 있으며 이렇게 하려면 권한이 필요합니다. 이러한 테이블에 대한 사용 권한은 대량 로드 프로세스를 위해 데이터베이스에 연결하고 있는 동일한 사용자에게 부여됩니다.

  • 대량 로드는 트랜잭션 모드 처리 중에 사용되는 임시 파일을 만들고 삭제할 수 있으며 이렇게 하려면 권한이 필요합니다. 이러한 파일은 대량 로드가 실행되고 있는 스레드의 현재 사용자와 동일한 사용 권한으로 만들어집니다.

  • 사용자가 SQLXML에서 오류를 기록할 오류 로그 파일을 설정하는 경우 대량 로드를 실행할 때마다 이 파일이 마지막 대량 로드 프로세스의 데이터로 덮어쓰여집니다.

참고 항목

XML 데이터 대량 로드 수행(SQLXML 4.0)