What is dbo in SQL Server?

hai503發表於2022-04-06

I used to learn about SQL, especially MySQL. Then now my job requires me to understand Microsoft SQL Server (mssql). So I make these notes to guide me and others who want to transition to mssql. I usually summarized what I found and understood so far from browsing the internet.

My takeaways:

  • dbo stands for DataBase Owner.

  • We can't remove  privileges from an object owner and we can't  drop users from a database if  they own objects in it.

  • schema is a  named container for  database objects, which allows us to group objects into separate namespaces. The  schema is the  database object that owns the table. For example, the AdventureWorks sample database contains schemas for Production, Sales, and HumanResources.
    AdventureWorks database

  • The  four-part naming syntax for referring to objects specifies the  schema name.

Server.Database.DatabaseSchema.DatabaseObject
  • Schemas can  be owned by any database principal and a single principal can  own multiple schemasPrincipals are  entities that can request SQL Server resources.

  • Schemas that contain objects cannot be dropped. The following schemas cannot be dropped:  dboguestsysINFORMATION_SCHEMA.

  • The  sys and  INFORMATION_SCHEMA schemas are reserved for system objects. We  cannot create objects in these schemas and we  cannot drop them.

  • The  dbo schema is the  default schema of every database for all users. By default, users created with the  CREATE USER Transact-SQL command have  dbo as their default schema. The  dbo  schema is  owned by the  dbo  user account.
    user-schema-object

  • For example, the name of a table called orders owned by  dbo is  dbo.orders. If the table’s ownership is transferred to user  abc, the table will now be named  abc.orders.

  • Users who are assigned the  dbo as default schema  don't inherit the permissions of the  dbo  user accountNo permissions are inherited from a schema by usersschema permissions are  inherited by the database objects contained in the schema.

  • the  dbo  user account is  not the same as the  db_owner  fixed database role and the  db_owner  fixed database role is  not the same as the  user account that is recorded as the owner of the database.

  • The  default schema for a user is  solely used for  object-reference in case the user omits the schema when querying objects. Users in the database will be able to access any object owned by  dbo without specifying the owner as long as the user has appropriate permission.

原文:https://dev.to/ranggakd/what-is-dbo-in-sql-server-396k

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12707874/viewspace-2885839/,如需轉載,請註明出處,否則將追究法律責任。

相關文章