SQL Server의 테이블 이름이 "dbo"로 시작하는 이유는 무엇입니까?


답변:


233

dbo는 SQL Server의 기본 스키마입니다. 객체 네임 스페이스를보다 잘 관리 할 수 ​​있도록 고유 한 스키마를 만들 수 있습니다.


22
모범 사례로서 항상 "dbo"를 추가합니다. 필요하지 않더라도 접두사. SQL에서 대부분의 경우 명시 적으로 표현하는 것이 좋습니다.
SurroundedByFish

3
@SurroundedByFish : 아마도 모범 사례는 아니지만 SQL 전문가가 아니기 때문에 틀릴 수 있습니다. stackoverflow.com/a/769639/602245
Brett

13
이 문서 A로부터 다른 응답 ". 거기에 약간의 성능 향상이 그렇게이며, 가장 좋은 방법으로 간주되지만 코드는, 완전한 이름을 사용할 필요가 없습니다 것"이 가장 좋은 방법은 사실이라고 주장
칼 G

7
또한 귀하가 연결 한 답변 은 "dbo"를 포함하는 것이 좋습니다. 최적화 프로그램이 스키마를 조회 할 필요가 없습니다.
Carl G

7
dbo는 좋은 습관이 아닙니다. 자신 만의 스키마를 작성하고 항상 사용하십시오. dbo는 마이그레이션 트릭 만 존재하므로 SQL Server 2005 이전 버전이 계속 작동합니다. 예, 항상 perf에 스키마를 사용하십시오. 아니요, 마이그레이션이 아닙니다 (예 : dbo).
David Betz

85

Sql Server Management Studio를 사용하는 경우 데이터베이스-데이터베이스-보안-스키마를 찾아 고유 한 스키마를 만들 수 있습니다.

스크립트를 사용하여 스크립트를 작성하는 방법은 다음과 같이 쉽습니다.

CREATE SCHEMA [EnterSchemaNameHere] AUTHORIZATION [dbo]

"금융"정보에 대한 스키마를 작성하고 "개인"데이터에 대한 스키마를 작성하여 테이블을 논리적으로 그룹화하는 데 사용할 수 있습니다. 그러면 테이블이 다음과 같이 표시됩니다.

Financial.BankAccounts Financial.Transactions 개인 주소

dbo의 기본 스키마를 사용하는 대신


Entity Framework를 사용할 때 문제가 발생하는지 알고 있습니까?
batmaci

6
Entity Framework와 함께 스키마를 사용할 수 있습니다. 원하는 경우 코드를 먼저 사용하더라도[Table("Customer", Schema = "MySchema")]
Fenton

'AUTHORIZATION [dbo]'는 스키마에서 dbo와 동일한 권한을 부여합니까, 아니면 여전히 사용자에게 권한을 부여해야합니까?
Mark Micallef

21

SQL 2005의 새로운 기능으로, 특히 "그룹"에서 개체를 보호 할 목적으로 개체를 그룹화하는 간단한 방법을 제공합니다.

다음 링크는 그것이 무엇인지, 왜 우리가 그것을 사용하는지에 대해 더 깊이 설명합니다.

SQL Server의 소유자와 스키마의 차이점 이해

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