2016-08-29 11 views
1

우리는 수천 명의 사용자가 실행중인 큰 시스템을 가지고 있습니다 (일부는 안드로이드 앱, 다른 것은 웹 앱 등).SQL 서버에 보안 계층 ​​추가 (현재 원격 SQL 관리 스튜디오에서 액세스 가능)

시스템은 데이터베이스가 두 국가 (동일한 국가 내에 있음)와 함께 배포됩니다. 한 위치에 동일한 네트워크에 5 개의 서버가 있고 각 서버에는 복제를 통해 데이터베이스 복사본이 있습니다.

소프트웨어 개발자 중 일부는 프로덕션 데이터베이스에 직접 액세스 할 수 있습니다. 때로는 사용자가 시스템 자체에서 불가능한 일부 작업을 수정하도록 사용자가 요청한 기술 지원으로 인해 개발자/지원 팀이 데이터베이스에 직접 액세스하여 일부 레코드를 수정해야합니다.

우리는 이것이 이상적인 작동 방식이 아니라는 것을 알고 있습니다. 그러나 수년 이래로 이렇게되었습니다.

최근 몇 가지 문제점을 발견했습니다. 어느 날 한 사람이 실수로 테이블에서 수백 개의 레코드를 업데이트했습니다.

그 이후로 우리는이 액세스를 향상시키는 방법을 분석하고 있습니다.

우리는 보안을 향상시킬 방법을 찾고 있습니다. 우리는 2 단계 인증 시스템을 갖추기를 원합니다. SQL Server Management Studio에서 액세스 할 때 사용자에게 두 개의 암호를 묻는 메시지가 표시됩니다 ...

그럴 수 있습니까? 아니면 우리가 보안을 향상시키는 데 사용할 수있는 다른 접근 방식이 있지만 여전히 devs/지원 팀이 필요할 때 프로덕션 데이터베이스에 액세스 할 수 있습니까?

또한 사용자 (모든 사용자)는 원격 데스크톱을 통해 모든 서버에 액세스 할 수 있습니다.

적어도이 액세스가 완료되면 알려드립니다.

+0

현재 Windows 인증 또는 혼합 모드 인증을 사용합니까? 응용 프로그램에서 사용자에 대한 사용 권한을 어떻게 처리합니까? –

+0

어떻게 암호를 두 번 묻는다면 '언젠가 한 사람이 실수로 테이블에서 수백 개의 레코드를 업데이트하지 못하게 될 것입니다.' – TheGameiswar

+0

@ArthurD 예, 혼합 모드를 사용할 수 있습니다. –

답변

1

해당 사용자에 대해서만 읽기 전용 권한으로 액세스하십시오. 사용자가 스크립트를 작성한 다음 검토를 위해 최소한 제출하고 가능한 경우 다른 배포 가능 프로그램과 마찬가지로 테스트하십시오. 그런 다음 액세스 권한이있는 사람과 표준 배포 프로세스를 수행하십시오.

+0

안녕하세요 @SMM, 나는 당신의 해결책을 좋아합니다. 우리는 아마도 저장소 (SVN)와 젠킨스 (Jenkins)의 혼합을 생각하고있었습니다. 예를 들어 지원 담당자가 일부 행 또는 표를 업데이트하려고합니다. 그래서 그는 스크립트 (SQL)를 작성하고 Dev 서버에 스크립트를 실행합니다 (매일 밤이 서버는 프로덕션 시스템의 매우 새로운 백업을 가져 와서 자체 데이터베이스를 다시 만듭니다). 일단 지원 담당자가 스크립트에 만족하면 특수 SVN 저장소 (지원이라고 함)에 커밋합니다. DB 쓰기 권한이있는 사람이 생기면 스크립트를 확인하고 Jenkins에서 일을 시작합니다.이 작업은 프로덕션 환경에서 스크립트를 실행합니다. –

+0

그래서이 변화는 젠킨스를 통해 이루어질 것입니다 (누구도 직접 액세스 할 수 없음). 젠킨스에서 임무를 수행 할 수있는 권리 만 있습니다. 그러나이 방법이 sQL 스크립트를 작성하는 사용자에게 너무 제한적일 수 있습니다. SQL Server 용 EMS SQL Manager와 같은 특정 소프트웨어를 사용하여 화면에서 행을 시각적으로 나타내는 값을 수정하는 것이 훨씬 쉽습니다. –

+0

이것에 대해 SVN 저장소를 사용하고 있습니까? 이 특정 직무에 대해 이미 다른 종류의 소프트웨어가 있습니까? 감사합니다 –

0

다른 답변을 사용할 수없고 이러한 업데이트가 항상 같은 종류의 수정 프로그램 인 경우 ... 저장된 procs를 작성하면 수정 프로그램을 수행하고 procs에 대한 사용 권한 만 제공 할 수 있습니다. 수정의 공통점에 의존하고 내 다른 대답에 덜 바람직합니다.

직접 사용하지 않았지만 EXECUTE AS은 사용자에게 읽기 전용 권한을 부여하고 procs는 더 높은 액세스 권한으로 자격 증명을 사용하여 실행할 수 있습니다.

+0

그들이 procs를 가지고 있다면 시스템에서 변경을 할 수 있습니다 ... –

+0

delete 문에서 where 절을 잊어 버릴 때의 피해를 제한하십시오. – SMM

+0

사실이긴하지만 IT 팀을 운영하는 IT 팀에게는 희망이 없습니다. 수천 명의 사용자가 "수년간"데이터베이스 변경 제어 메커니즘없이 ... –