1

처음 소개합니다.DB 사용자가 SQL Server Express 2008에서 대화 형이 아닌 특정 데이터베이스 역할 구성원을 만드는 방법

우리는 Management Studio에서 데이터베이스의 컨텍스트 메뉴를 열고 작업 | 스크립트 생성을 선택하여 원본 컨트롤에 스크립트가 저장되는 SQL Server Express 2008 데이터베이스를 사용합니다. ...

각 개발자는 로컬 SQL Server Express 2008 데이터베이스가 있으며 CI 서버에서 사용되는 중앙 SQL Server 2008 데이터베이스가 하나 있습니다. 개발자가 로컬 데이터베이스의 스키마를 변경할 때마다 스크립트를 다시 생성하고 소스 코드와 함께 커밋하며 CI 서버에서 사용하는 중앙 데이터베이스의 스키마를 업데이트합니다.

때로는 변경 사항이 많아서 전체 데이터베이스를 간단히 삭제하고 스크립트를 사용하여 처음부터 새로 만드는 것이 훨씬 쉽습니다.

but에는 한 가지 문제가 있습니다. 스크립트가 올바른 데이터베이스 사용자 (예 : ServerUser)를 만들지 만 해당 사용자에게 응용 프로그램에 필요한 db_owner 역할 구성원 자격을 부여하지 않습니다. 개발자는 Management Studio에서 ServerUser 사용자의 속성 대화 상자를 열고 데이터베이스 역할 구성원 인 목록의 db_owner 확인란을 선택해야합니다. 말할 것도없이, 우리는이 단계를 자주 잊어 버립니다. 나 자신은 서버가 왜 시작되지 않는지 알아 내려고 한시간 정도 낭비했다.

약간 순진한 사람이라면 간단한 SQL 삽입 문을 사용하여 [master].[sys].[database_role_members] 카탈로그를 조작하여 스크립트 실행의 일부로 필요한 역할 구성원을 자동으로 추가 할 수 있다고 생각했습니다. 물론, 오류 메시지 으로 실패했습니다. 시스템 + 탈 로그에 대한 임시 갱신은 허용되지 않습니다.. 바보 야.

어쨌든, 제 질문은 이것입니다. 데이터베이스와 ServerUser이 생성되면이 사용자가 새 데이터베이스의 db_owner 역할 구성원을 갖게 할 때 실행할 SQL 스크립트를 가질 수 있습니까?

감사합니다.

답변