SQL Server의 테이블 이름이 "dbo"로 시작하는 이유는 무엇입니까?
적어도 로컬 인스턴스에서 테이블을 작성할 때 모두 "dbo" 앞에 붙습니다.왜 그런 것일까요?
dbo는 SQL Server의 기본 스키마입니다.개체 네임스페이스를 보다 효율적으로 관리할 수 있도록 자체 스키마를 생성할 수 있습니다.
SQL Server Management Studio를 사용하는 경우, [데이터베이스] - [데이터베이스] - [보안] - [스키마]를 찾아 사용자 고유의 스키마를 작성할 수 있습니다.
스크립트를 사용하여 작성하는 것은 (예를 들어) 다음과 같이 간단합니다.
CREATE SCHEMA [EnterSchemaNameHere] AUTHORIZATION [dbo]
예를 들어 "재무" 정보에 대한 스키마와 "개인" 데이터에 대한 스키마를 작성하여 테이블을 논리적으로 그룹화할 수 있습니다.테이블은 다음과 같이 표시됩니다.
금융의.Bank Accounts Financial.퍼스널 트랜잭션주소.
기본 스키마 dbo를 사용하는 것이 아니라
SQL 2005에서는 새로운 기능으로 특히 "그룹" 내의 개체를 보호하기 위해 개체를 그룹화하는 간단한 방법을 제공합니다.
다음 링크에서는 이 링크의 개요와 사용 이유에 대해 자세히 설명합니다.
Microsoft는 버전 2005에서 스키마를 도입했습니다.스키마를 모르거나 관심이 없는 사람들을 위해 오브젝트를 기본 스키마에 넣었습니다.dbo
.
dbo
【데이터베이스 소유자
파일 폴더와 같은 스키마를 생각해 보십시오.
- 개체가 동일하거나 기본 스키마에 있는 경우 스키마를 참조할 필요가 없습니다.
- 다른 폴더의 파일을 참조할 수 있도록 스키마를 접두사로 사용하여 다른 스키마의 개체를 참조할 수 있습니다.
- 동일한 이름을 가진 두 개체를 단일 스키마에 둘 수 없지만 다른 스키마로 둘 수 있습니다.
- 스키마를 사용하면 더 많은 개체를 구성할 수 있습니다.
- 스키마를 특정 사용자 및 역할에 할당할 수도 있으므로 누가 무엇을 수행할 수 있는지에 대한 액세스를 제어할 수 있습니다.
일반적으로 모든 스키마에서 모든 개체에 액세스할 수 있습니다.그러나 어떤 사용자가 특정 스키마에 액세스할 수 있는지 제어할 수 있으므로 보안 모델에서 스키마를 사용할 수 있습니다.
★★★★★★★★★★★★★★★★★★dbo
1개의 내에서 .통상은, 1 개의 데이타베이스내에서 지정할 필요가 없습니다.
SELECT * FROM customers;
SELECT * FROM dbo.customers;
같은 의미입니다.
는 항상 을 경향이 있다.dbo.
prefix: 불필요한 세부사항을 코드를 복잡하게 할수록 읽고 관리하는 것이 어려워집니다.
대부분의 경우 스키마를 무시할 수 있습니다.단, 스키마는 다음과 같은 상황에서 나타납니다.
또는 프로그램에서 Excel Access가 표시됩니다.
dbo.
.그래도 무시해도 돼요.합니다.
database.schema.table
:SELECT * FROM bookshop.dbo.customers;
이력상의 이유로 사용자 정의 스칼라 함수를 쓰는 경우 스키마 프레픽스를 사용하여 호출해야 합니다.
CREATE FUNCTION tax(@amount DECIMAL(6,2) RETURNS DECIMAL(6,2) AS BEGIN RETURN @amount * 0.1; END; GO SELECT total, dbo.tax(total) FROM pricelist;
테이블 기능, 프로시저 및 뷰와 같은 다른 개체에는 적용되지 않습니다.
스키마를 사용하여 이름 충돌을 해결할 수 있습니다.예를 들어, 모든 사용자가 개인 스키마를 가지고 있는 경우 이름을 두고 다른 사용자와 싸울 필요 없이 추가 개체를 만들 수 있습니다.
Microsoft 제품 (문서)
dbo
입니다.user는 사용자 주체입니다. SQL Server Server , SQL Server 관리자sysadmin
역할, "" " " ",sa
및 는 "를 "데이터베이스"로 합니다.dbo
★★★★★★★★★★★★★.dbo
사용자는 데이터베이스의 모든 권한을 가지고 있으며 제한하거나 삭제할 수 없습니다. dbo
소유자를 만, 「Database Owner」는, 「Database Owner」의 입니다.dbo
이 ""와 .db_owner
역할 " " " " " " " " " " " "db_owner
고정 데이터베이스 역할은 데이터베이스의 소유자로 기록된 사용자 계정과 다릅니다.dbo
가 dbo
★★★★dbo
schema는 다른 스키마가 지정되지 않는 한 모든 사용자의 기본 스키마입니다.dbo
스키마를 삭제할 수 없습니다. schemadbo dbo를 .다른 스키마가 지정되지 않는 한 dbo 스키마는 모든 사용자의 기본 스키마입니다.할 수 .dbo 스키마는 드롭할 수 없습니다.
DBO는 SQL Server의 기본 스키마입니다.개체 네임스페이스를 보다 효율적으로 관리할 수 있도록 자체 스키마를 생성할 수 있습니다.필수가 아닌 경우에도 항상 "DBO" 접두사를 추가하는 것이 가장 좋습니다.SQL에서는 대부분의 경우 명시적인 것이 좋습니다.
언급URL : https://stackoverflow.com/questions/1062075/why-do-table-names-in-sql-server-start-with-dbo
'source' 카테고리의 다른 글
DATETIME과 DATE 무시 시간 비율 비교 (0) | 2023.04.07 |
---|---|
T-SQL에서 동일하지 않은 경우 != 또는 <> 중 어느 쪽을 사용해야 합니까? (0) | 2023.04.07 |
단일 SQL 쿼리에 여러 행을 삽입하시겠습니까? (0) | 2023.04.07 |
SQL Server에는 Math와 같은 두 가지 값을 취하는 Max 함수가 있나요?최대 입력.인터넷? (0) | 2023.04.07 |
SQL SERVER: 두 날짜 사이의 총 일수 가져오기 (0) | 2023.04.07 |