SQL Server에서 dbo란 무엇입니까?

저는 SQL, 특히 MySQL에 대해 배웠습니다. 그런 다음 이제 내 직업은 Microsoft SQL Server(mssql)를 이해해야 합니다. 따라서 저와 mssql로 전환하려는 다른 사람들을 안내하기 위해 이 메모를 작성합니다. 저는 보통 지금까지 인터넷 검색을 통해 발견하고 이해한 내용을 요약했습니다.

내 테이크 아웃:
  • dbo는 데이터베이스 소유자를 나타냅니다.
  • 개체 소유자의 권한을 제거할 수 없으며 데이터베이스에서 개체를 소유한 사용자를 데이터베이스에서 삭제할 수 없습니다.
  • schema는 개체를 별도의 네임스페이스로 그룹화할 수 있는 데이터베이스 개체의 명명된 컨테이너입니다. schema는 테이블을 소유하는 데이터베이스 객체입니다. 예를 들어 AdventureWorks 샘플 데이터베이스에는 Production, Sales 및 HumanResources에 대한 스키마가 포함되어 있습니다.
  • 개체를 참조하기 위한 네 부분으로 구성된 이름 지정 구문은 스키마 이름을 지정합니다.

  • Server.Database.DatabaseSchema.DatabaseObject
    


  • 스키마는 모든 데이터베이스 보안 주체가 소유할 수 있으며 단일 보안 주체는 여러 스키마를 소유할 수 있습니다. 보안 주체는 SQL Server 리소스를 요청할 수 있는 엔터티입니다.
  • 개체가 포함된 스키마는 삭제할 수 없습니다. 다음 스키마는 삭제할 수 없습니다. dbo , guest , sys , INFORMATION_SCHEMA .
  • sysINFORMATION_SCHEMA 스키마는 시스템 개체용으로 예약되어 있습니다. 이러한 스키마에서 객체를 생성할 수 없으며 객체를 삭제할 수도 없습니다.
  • dbo 스키마는 모든 사용자에 대한 모든 데이터베이스의 기본 스키마입니다. 기본적으로 CREATE USER Transact-SQL 명령으로 생성된 사용자의 기본 스키마는 dbo입니다. dbo 스키마는 dbo 사용자 계정이 소유합니다.
  • 예를 들어 dbo가 소유한 주문이라는 테이블의 이름은 dbo.orders입니다. 테이블의 소유권이 사용자abc에게 이전되면 이제 테이블 이름이 abc.orders로 지정됩니다.
  • 기본 스키마로 dbo가 할당된 사용자는 dbo 사용자 계정의 권한을 상속하지 않습니다. 사용자는 스키마에서 권한을 상속받지 않습니다. 스키마 권한은 스키마에 포함된 데이터베이스 개체에 의해 상속됩니다.
  • dbo 사용자 계정이 db_owner 고정 데이터베이스 역할과 동일하지 않고 db_owner 고정 데이터베이스 역할이 데이터베이스 소유자로 기록된 사용자 계정과 동일하지 않습니다.
  • 사용자의 기본 스키마는 사용자가 개체를 쿼리할 때 스키마를 생략한 경우 개체 참조에만 사용됩니다. 데이터베이스의 사용자는 사용자에게 적절한 권한이 있는 한 소유자를 지정하지 않고도 dbo가 소유한 모든 개체에 액세스할 수 있습니다.

  • 참조:

    [1] ownership-and-user-schema-separation
    [2] creating-database-objects
    [3] understanding-the-difference-between-owners-and-schemas-in-sql-server
    [4] owners-and-schemas
    [5] principals

    좋은 웹페이지 즐겨찾기