为什么我无法使用低权限用户创建索引
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 在数据模式中的问题。
我创建了一个该用户所属的角色,并在多个架构上设置了执行权限,但是在数据架构上我需要能够动态创建和删除 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 在数据模式中的问题。