为什么我无法使用低权限用户创建索引

Why am I unable to create an index using low privileged user

我创建了一个该用户所属的角色,并在多个架构上设置了执行权限,但是在数据架构上我需要能够动态创建和删除 tables。根据屏幕截图,我向角色(和用户有效)授予了所有可用权限,但是当我尝试创建索引时,这是我得到的错误:

Could not create constraint or index. See previous errors

之前没有错误:(

这是应该创建 table 和索引的代码:

CREATE TABLE [Data].[24C6B124-137C-4F06-B690-F80C0C0A1347]
(
    [ApplicationId] [INT] NOT NULL,
    [UUID] [UNIQUEIDENTIFIER] ROWGUIDCOL  NOT NULL,

    CONSTRAINT [PK_24C6B124-137C-4F06-B690-F80C0C0A1347] 
        PRIMARY KEY CLUSTERED ([ApplicationId] ASC)
                    WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, 
                          IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY];

ALTER TABLE [Data].[24C6B124-137C-4F06-B690-F80C0C0A1347] 
    ADD CONSTRAINT [DF_24C6B124-137C-4F06-B690-F80C0C0A1347_UUID]  
        DEFAULT (NEWID()) FOR [UUID];

ALTER TABLE [Data].[24C6B124-137C-4F06-B690-F80C0C0A1347] WITH CHECK 
    ADD CONSTRAINT [FK_24C6B124-137C-4F06-B690-F80C0C0A1347_Application] 
        FOREIGN KEY([ApplicationId]) REFERENCES [dbo].[Application] ([ApplicationId])
                ON DELETE CASCADE;

rolling back...

如果我用 sa 级用户执行相同的查询,它运行没有问题。

我最好的选择是,这是一个与创建索引所需的某些权限相关的权限问题,但我的搜索和实验无济于事。

当我发布一个问题时,我弄明白了所以让我分享一下:

我还需要在 table [dbo] 上添加引用权限。[Application] 在 dbo 模式中,不同于 table 在数据模式中的问题。