It should be the default "owner" of all objects in the schema. Schema-bound objects have a
principal_id column that is
NULL by default, in which case it uses the
principal_id of the Schema that the object is in.
The object owner is used for ownership chaining, and most likely also when determining if rights exist to perform operations that can be done by the object owner or a User in a the
db_owner Database Role, such as TRUNCATE TABLE, SET IDENTITY_INSERT, etc.
sys.schemas can be any User if changed via ALTER AUTHORIZATION.
If using Schemas for logical separation of objects more than security separation, then it would make sense to use the same
principal_id across multiple Schemas. For example, executing the following in the
SELECT * FROM sys.schemas;
shows that the following Schemas are all owned by "dbo":
Having the same "owner" across
Purchasing (and the others) allows ownership chaining to imply permissions of referenced objects within top-level objects. Meaning, if you execute a Stored Procedure in the
Sales Schema, and it selects from a View in the
Purchasing Schema, then permissions won't be re-checked and everything just works. But, if you then specify the
principal_id of the View in the
Purchasing Schema such that the column is no longer
NULL (and not the same as the "dbo" User) then it will re-check permissions to see if the User executing the Stored Procedure has
SELECT permissions on that View.