I created a test account for checking permissions against. It currently has the db_datareader, db_datawriter, and db_ddladmin roles for the Northwind database. But when it tries to create a new schema on Northwind, the creation fails if it tries to authorize dbo as the schema owner, what's up?
The db_datareader, db_datawriter, and db_ddladmin permissions will not give the necessary privilege for this action.
db_datareader: Members of the db_datareader fixed database role can read all data from all user tables.
db_datawriter: Members of the db_datawriter fixed database role can add, delete, or change data in all user tables.
db_ddladmin: Members of the db_ddladmin fixed database role can run any Data Definition Language (DDL) command in a database.
As you can see, these permissions will give you privileges to create and manipulate the database structure. However, they will not give you the privileges to authorize other members to access these structures.
To do this you need set your test user as a membership of db_owner:
USE [your_database] GO ALTER ROLE [db_owner] ADD MEMBER [teste] GO
After this, you will can authorize DBO in the new schema like:
USE [your_database] GO CREATE SCHEMA [test] AUTHORIZATION [dbo] GO
Check this image from Microsoft of database level roles and permissions
You can read more about each permission at this link
Remember to use the commands in the correct database with: