

So your question is really " Why do securables need an owner?". Since the database is a server level securable it follows that it will be, by default, owned by the primary principal that issued the CREATE DATABASE statement. ALTER AUTHORIZATION can be later used to change the owner of any securable. All securables support the AUTHORIZATION clause at create time to enforce a different owner. Database level securables are owned by default by the current database principal, except for schema bound objects that by default are owned by the schema owner. Server level securables are by default owned by the currently logged primary server principal. Principal come in two flavor: primary (identity) and secondary (membership).


Database level securables are owned by database principals (users). Instance level securables are owned by server principals (logins). The owner of a securable has absolute control over the securable and cannot be denied any priviledge. The theory goes like this: anything that can be granted permissions on is a 'securable'. In what you're asking you are talking about the database owner as the server principal that owns the database. The 'dbo' and 'db_owner' are often called 'database owner'. There is some confusion out there between the database concepts of the 'dbo' (a user) and 'db_owner' (a fixed role) on one side and the instance concept of 'database owner' on the other side.
