source

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

ittop 2023. 4. 7. 21:56
반응형

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

적어도 로컬 인스턴스에서 테이블을 작성할 때 모두 "dbo" 앞에 붙습니다.왜 그런 것일까요?

dbo는 SQL Server의 기본 스키마입니다.개체 네임스페이스를 보다 효율적으로 관리할 수 있도록 자체 스키마를 생성할 수 있습니다.

SQL Server Management Studio를 사용하는 경우, [데이터베이스] - [데이터베이스] - [보안] - [스키마]를 찾아 사용자 고유의 스키마를 작성할 수 있습니다.

스크립트를 사용하여 작성하는 것은 (예를 들어) 다음과 같이 간단합니다.

CREATE SCHEMA [EnterSchemaNameHere] AUTHORIZATION [dbo]

예를 들어 "재무" 정보에 대한 스키마와 "개인" 데이터에 대한 스키마를 작성하여 테이블을 논리적으로 그룹화할 수 있습니다.테이블은 다음과 같이 표시됩니다.

금융의.Bank Accounts Financial.퍼스널 트랜잭션주소.

기본 스키마 dbo를 사용하는 것이 아니라

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

다음 링크에서는 이 링크의 개요와 사용 이유에 대해 자세히 설명합니다.

SQL Server의 오너와 스키마의 차이에 대해서

Microsoft는 버전 2005에서 스키마를 도입했습니다.스키마를 모르거나 관심이 없는 사람들을 위해 오브젝트를 기본 스키마에 넣었습니다.dbo.

dbo【데이터베이스 소유자

파일 폴더와 같은 스키마를 생각해 보십시오.

  • 개체가 동일하거나 기본 스키마에 있는 경우 스키마를 참조할 필요가 없습니다.
  • 다른 폴더의 파일을 참조할 수 있도록 스키마를 접두사로 사용하여 다른 스키마의 개체를 참조할 수 있습니다.
  • 동일한 이름을 가진 두 개체를 단일 스키마에 둘 수 없지만 다른 스키마로 둘 수 있습니다.
  • 스키마를 사용하면 더 많은 개체를 구성할 수 있습니다.
  • 스키마를 특정 사용자 및 역할에 할당할 수도 있으므로 누가 무엇을 수행할 수 있는지에 대한 액세스를 제어할 수 있습니다.

일반적으로 모든 스키마에서 모든 개체에 액세스할 수 있습니다.그러나 어떤 사용자가 특정 스키마에 액세스할 수 있는지 제어할 수 있으므로 보안 모델에서 스키마를 사용할 수 있습니다.

★★★★★★★★★★★★★★★★★★dbo1개의 내에서 .통상은, 1 개의 데이타베이스내에서 지정할 필요가 없습니다.

SELECT * FROM customers;
SELECT * FROM dbo.customers;

같은 의미입니다.

는 항상 을 경향이 있다.dbo.prefix: 불필요한 세부사항을 코드를 복잡하게 할수록 읽고 관리하는 것이 어려워집니다.

대부분의 경우 스키마를 무시할 수 있습니다.단, 스키마는 다음과 같은 상황에서 나타납니다.

  1. 또는 프로그램에서 Excel Access가 표시됩니다.dbo..그래도 무시해도 돼요.

  2. 합니다.database.schema.table:

    SELECT * FROM bookshop.dbo.customers;
    
  3. 이력상의 이유로 사용자 정의 스칼라 함수를 쓰는 경우 스키마 프레픽스를 사용하여 호출해야 합니다.

    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고정 데이터베이스 역할은 데이터베이스의 소유자로 기록된 사용자 계정과 다릅니다.
dbodbo★★★★dboschema는 다른 스키마가 지정되지 않는 한 모든 사용자의 기본 스키마입니다.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

반응형