2014-01-13 2 views
0

나는 datawarehouse에서 중학교 SQL 개발자로서 회사에서 일하기 시작했다. 나는 코드를 살펴보고 차원 모델 등을 배우는 때부터 개발자가 환경에 대한 권한 밖의 보안 조치를 보려고 애쓴다.데이터웨어 하우스 데이터 보안?

웨어 하우스의 데이터에 중요한 영향을주는 코드를 작성하고 잘못된 값으로 업데이트하고 잘못된 데이터를 삽입하고 거기에 있어야 할 레코드를 삭제하고 커밋 문과 함께 해당 코드를 히트하면 wouldn ' 창고의 비즈니스 인텔리전스 측면에 엄청난 영향을 미칩니 까? 통계를 작성하기 위해 데이터를 가져오고 잘못된 데이터가있는 것처럼 나쁜 통계가 나옵니다.

우리는 약 7 백억의 레코드를 가지고 있으며, 이런 방식으로 변경하면 전혀 볼 수 없다면 픽업하기가 정말 어려울 것입니다.

아마도 이것은 간단한 질문이지만, 데이터웨어 하우스에서 데이터 유효성을 검사하기위한 엄격한 관계형 제약이 없기 때문에, 특히 큰 데이터와 데이터베이스 관리자를 이동할 때 특히 답을 찾을 수 없습니다. 트리거 및 색인도 삭제하십시오. 원본 데이터를 가져 오는 트랜잭션 측면도 기록을 유지하지 않습니다 (이것이 우리의 업무 임).

이 주제에 대한 의견이나 제안은 매우 높이 평가됩니다. 감사합니다.

답변

4

일반적으로 데이터베이스 작업이나 코드 작성시 실수가 발생합니다. 따라서 개발 환경과 프로덕션 환경을 항상 분리해야합니다. 또한 우리 중 대부분은 코드가 프로덕션에 배포되기 전에 새 코드가 테스트되고 데이터의 유효성이 검사되는 중간 테스트 환경이 있습니다.

또한 배포 전에 전체 백업이 수행됩니다. 이렇게하면 배포 후에 오류가 발견되면 백업을 복원 할 수 있습니다.

개발 및 프로덕션 환경은 별도의 동일한 서버에서 실행되는 것이 가장 바람직합니다. 그렇게 할 수 없다면 최소한 데이터를 별도의 데이터베이스에 보관하고 데이터베이스 서버의 보안을 사용하여 배포가 발생하지 않는 한 아무도 프로덕션 데이터베이스를 변경할 수 없도록하십시오.

이제 배포 자체에 대해 배포 할 때마다 검사 목록을 정렬해야합니다. 체크리스트의 첫 번째 단계는 기존 프로덕션 환경을 백업하는 것입니다. 가능한 경우 배포의 일부를 자동화하는 스크립트를 작성하십시오. SQL Schema Compare와 같은 도구를 사용하여 개발 및 프로덕션 데이터베이스 간의 차이점을 확인하십시오. 이상적으로 배포는 하나의 버튼을 누르는 문제 여야하며 모든 것이 자동으로 배포되므로 걱정없이 다시 개발할 수 있습니다.

+0

좋은 답변입니다. @ 댄의 대답은 최고의 솔루션입니다 – Karthi

관련 문제