DB 소유자를 [sa]로 설정하지 않아야하는 이유가 있습니까?


15

어제 나는 여러 데이터베이스의 dbo를 변경하는 것과 관련 하여이 질문 을했습니다. 변화는 의미가 있지만 명확하고 싶습니다.

데이터베이스의 dbo를 [sa]로 설정 하지 않아야하는 이유가 있거나 적절한 이유가 있습니까?


1
참고 : 데이터베이스 소유자를 변경할 때 또는 특히이를 한 번에 여러 데이터베이스에 적용 할 때 스크립트에 데이터베이스 사용자를 다시 로그인 할 수있는 조항이 포함되어 있는지 확인하십시오. 가능하면 사용량이 적을 때이 변경을 수행하십시오.
Jon Seigel

답변:


18

SA를 데이터베이스의 소유자로 만드는 것은 실제로 여러 가지를 단순화 및 / 또는 해결하지만 보안에 영향을 줄 수 있습니다.

특히 SA가 데이터베이스의 소유자이면를 기억하십시오 dbo = 'SA'. 이는 무엇보다도 "EXECUTE As Owner"가있는 [dbo] 스키마 (기본값)의 모든 프로 시저가 실제로 SA로 실행되고 있음을 의미합니다. 그게 아니라 아주 소리가 나는 당신이 TRUSTWORTHY로 데이터베이스를 표시하지 않는 한, SQL 서버는 같은 가장 된 서버 수준의 교장 데이터베이스 중 세션이나 작업을 할 수 없기 때문에, 나쁜한다.

어느 다음 포인트를 제공합니다 : 당신이 아니라면, TRUSTWORTHY 등의 데이터베이스를 표시하지 정말 , 정말 확인이 안전한지. [dbo] 스키마에서 프로 시저를 작성할 수있는 사람은 원하는 경우 전체 서버에서 SA로 실행할 수 있기 때문입니다.

자체 SQL Server 데이터베이스가있는 많은 제품 및 응용 프로그램에서 종종 응용 프로그램 로그인이 데이터베이스의 DBO 여야한다고 지정하기 때문에 다른 문제가 발생할 수 있습니다. 분명히 응용 프로그램 로그인을 'SA'로 만들어서 해결할 수 있습니다. 바라건대, SQL Server 인스턴스가 다른 용도로 사용되지 않는 한 (그렇더라도 권장하지는 않습니다) 절대로 그렇게해서는 안된다는 것도 분명합니다.


추가 정보 감사합니다. 그것은 매우 유용합니다.
RLH
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.