• Note sure what you actually did; the CREATE TABLE statement should pass. It would be easier to make dbo owner of the schema from the start, but it does not matter. Maybe you have a DENY in the mix somewhere.

    Anyway, this script runs on my machine without errors:

    USE [master]

    GO

    CREATE DATABASE ST_Demo

    go

    CREATE LOGIN TestLogin1

    WITH PASSWORD='?????????',

    DEFAULT_DATABASE=ST_Demo;

    GO

    USE ST_Demo

    go

    CREATE USER TestUser1 FOR LOGIN TestLogin1

    WITH DEFAULT_SCHEMA=TestUser1;

    GO

    CREATE SCHEMA TestUser1

    AUTHORIZATION TestUser1;

    GO

    GO

    ALTER AUTHORIZATION ON SCHEMA::[TestUser1] TO [dbo]

    GO

    GRANT ALTER ON SCHEMA::[TestUser1] TO [TestUser1]

    GO

    GRANT CONTROL ON SCHEMA::[TestUser1] TO [TestUser1]

    GO

    GRANT SELECT ON SCHEMA::[TestUser1] TO [TestUser1]

    GO

    GRANT DELETE ON SCHEMA::[TestUser1] TO [TestUser1]

    GO

    GRANT INSERT ON SCHEMA::[TestUser1] TO [TestUser1]

    GO

    GRANT UPDATE ON SCHEMA::[TestUser1] TO [TestUser1]

    GO

    GRANT CREATE TABLE TO TestUser1;

    GO

    EXECUTE AS LOGIN = 'TestLogin1'

    go

    CREATE TABLE Customer

    (

    CustomerID int NOT NULL IDENTITY(1,1),

    CustomerName varchar(25) NOT NULL,

    StateCode char(2) NOT NULL,

    CreditLimit money NULL

    );

    GO

    REVERT

    Go

    USE tempdb

    go

    DROP DATABASE ST_Demo

    DROP LOGIN TestLogin1

    [font="Times New Roman"]Erland Sommarskog, SQL Server MVP, www.sommarskog.se[/font]