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.