2011-10-07 3 views
0

Microsoft SQL Server 2000에 연결된 Python 응용 프로그램이 있습니다. 응용 프로그램은 시작할 때 업데이트를 확인하고 자동으로 적용합니다. 곧 데이터베이스 스키마 변경도 처리해야합니다. 내 연구에 따르면 현재 데이터베이스의 기본 스크립트를 만든 다음 각 스키마 변경에 대해 새 스크립트를 만드는 것이 최선의 방법이라고 생각됩니다. 그렇게하면 모든 버전의 데이터베이스를 최신 버전으로 업데이트 할 수 있습니다.데이터베이스 스키마 변경 배포를위한 사용 권한

내 질문은 어떻게 이러한 업데이트에 대한 사용 권한을 관리합니까? 현재 애플리케이션을 사용하는 사람들은 약 50 명이며, 대부분 읽기 전용 액세스 권한이 있습니다. 이상적으로는, 사용자가 새 업데이트를받을 첫 번째 사람이 새 스키마 변경 사항을 적용 할 수 있도록 테이블을 만들거나 변경하는 것과 같은 필요한 변경 작업을 수행 할 수있게하고 싶습니다. 그런 일이 발생하지 않으면 적절한 권한을 가진 사람이 데이터베이스를 업데이트 할 때까지 응용 프로그램을 전혀 사용할 수 없습니다.

모든 사용자가 스키마를 업데이트 할 수 있으면 문제가 발생하는 것을 볼 수 있습니다. SQL Server Management Studio에 로그인하여 테이블 삭제 등의 문제를 일으키는 원인은 무엇입니까?

지금이 응용 프로그램은 한 번에 배포되므로 스키마 변경을 수동으로 쉽게 관리 할 수 ​​있습니다. 그러나 우리는 더 많은 지역에 배치 할 계획을 가지고 있으며이 모든 것이 자동으로 처리되기를 바랍니다.

답변

0

당신은 사용자에게 관리자 권한을 제한 할, 그러나 동시에 당신은 그들이 관리 활동을 수행 할 ...

:-)는 "닭이 먼저 냐 달걀이 먼저 냐"문제의 비트

옵션 1 : 웹 애플리케이션

프로그램을 웹 응용 프로그램으로 실행하도록 변환하십시오.

그러나 극단적 인 비트는 훨씬 단순한 메인 테넌트입니다. 사용자는 더 이상 Python, 중앙 집중식 업그레이드 및 공유 연결 풀을 데이터베이스에 설치할 필요가 없습니다.

인증 문제를 해결합니다. 사용자는 데이터베이스가 아닌 웹 응용 프로그램에 자신을 인증합니다.

저는 데이터베이스 스키마를 관리하기 위해 liquibase를 사용합니다. 새로운 버전의 앱이 배포 될 때 데이터베이스를 자동으로 업그레이드 할 수있는 servlet listener이 있습니다. (Liquibase에는 Python과 같은 대체 기술에서 사용하기위한 명령 행 인터페이스도 있습니다.)

옵션 2 : 암호화 관리자 암호

당신은 시작에서 다운로드하는 모든 사용자 응용 프로그램을 가능하게, 관리자 암호를 암호화하고 기업의 웹 서버에서 검색 할 텍스트 파일로 사용할 수 있도록.

이 솔루션에 보안 문제가 있습니다 .... 관리자 암호를 해독하려면 공유 암호를 파이썬 응용 프로그램에 내장해야합니다. 이것은 모호한 보안입니다.

관련 문제