5

我正在尝试从 SQL Server Management Studio 运行以下脚本:

INSERT [Truck].[Driver] ([DriverId], [CorporationId], [DriverNumber], [Name], [PhoneNumber]) 
VALUES (N'b78f90a6-ed6d-4f0e-9f35-1f3e9c516ca9', N'0a48eeeb-37f6-44de-aff5-fe9107d821f5', N'12', N'Unknown', NULL)

我收到了这个错误:

消息 229,级别 14,状态 5,第 1 行
对象“Driver”、数据库“SuburbanPortal2”、模式“Truck”的 INSERT 权限被拒绝。

我可以在编辑模式下手动添加它,我没有收到任何错误。我拥有我能想到的为我的用户设置的所有权限。这是一个以本地用户身份登录的本地数据库,我正在测试一些数据,因此我不太关心安全性。

但是,这里是我的用户的数据库设置:

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

有什么建议么?

4

1 回答 1

4
-- Use master
USE msdb;
go

-- Make database
CREATE DATABASE SuburbanPortal2;
go

-- Use the database
USE SuburbanPortal2;
GO

-- Make schema
CREATE SCHEMA Truck AUTHORIZATION dbo;
go

-- Make table
CREATE TABLE Truck.Driver
(
    [DriverId] uniqueidentifier,
    [CorporationId] uniqueidentifier,
    [DriverNumber] varchar(64),
    [Name] varchar(128),
    [PhoneNumber] varchar(12)
);

-- Add data
INSERT [Truck].[Driver] ([DriverId], [CorporationId], [DriverNumber], [Name], [PhoneNumber]) 
VALUES (N'b78f90a6-ed6d-4f0e-9f35-1f3e9c516ca9', N'0a48eeeb-37f6-44de-aff5-fe9107d821f5', N'12', N'Unknown', NULL);
GO

此代码像您一样设置一个示例数据库。我对插入没有任何问题。

谁是架构的所有者?

如果要从一个数据库组和另一个数据库组中隐藏表,请将您的用户添加到数据库组。

使数据库组成为模式的所有者。我认为您可能遇到架构所有权问题...

你能深入到数据库 -> 安全 -> 架构 -> 卡车,右键单击并显示架构的所有者。请张贴图片。

此外,删除用户的所有数据库权限,db_owner 除外。

于 2013-07-12T19:37:45.437 回答