1

MetricsUser 帐户在执行存储过程时收到以下错误:

“消息 1088,级别 16,状态 7,过程 Data_SPROC,第 59 行找不到对象“tblPeopleProjectStage0”,因为它不存在或您没有权限。”

SPROC 相当长,但我很乐意发布它。我已经执行了以下查询来授予权限:

GRANT EXECUTE ON dbo.Data_SPROC TO [MetricsUser]
GRANT INSERT ON dbo.tblPeopleProjectStage0 TO [MetricsUser]
GRANT UPDATE ON dbo.tblPeopleProjectStage0 TO [MetricsUser]
GRANT DELETE ON dbo.tblPeopleProjectStage0 TO [MetricsUser]
GRANT SELECT ON dbo.tblPeopleProjectStage0 TO [MetricsUser]

该语句执行成功。

在明确授予用户权限后会发生权限错误的任何原因?如果需要,我将编辑和添加示例数据以及存储过程代码。

编辑

好的,这是权限查询的结果:

Name           Type       Object_Name                  Perm. Name    Perm. State Desc
-----------     --------  ------------                 ---------     -----------
MetricsUser    SQL_USER   splitstring                  SELECT        GRANT
MetricsUser    SQL_USER   tblPeopleProjectStage1       DELETE        GRANT
MetricsUser    SQL_USER   tblPeopleProjectStage1       INSERT        GRANT
MetricsUser    SQL_USER   tblPeopleProjectStage1       SELECT        GRANT
MetricsUser    SQL_USER   tblPeopleProjectStage1       UPDATE        GRANT
MetricsUser    SQL_USER   tblPeopleProjectStage2       DELETE        GRANT
MetricsUser    SQL_USER   tblPeopleProjectStage2       INSERT        GRANT
MetricsUser    SQL_USER   tblPeopleProjectStage2       SELECT        GRANT
MetricsUser    SQL_USER   tblPeopleProjectStage2       UPDATE        GRANT
MetricsUser    SQL_USER   splitindexedstring           SELECT        GRANT
MetricsUser    SQL_USER   Split_Text_Into_Stage_1      EXECUTE       GRANT
MetricsUser    SQL_USER   Split_Text_Into_Stage_2      EXECUTE       GRANT
MetricsUser    SQL_USER   Split_Text_Into_Stage_3      EXECUTE       GRANT
MetricsUser    SQL_USER   tblPeopleProjectStage3       DELETE        GRANT
MetricsUser    SQL_USER   tblPeopleProjectStage3       INSERT        GRANT
MetricsUser    SQL_USER   tblPeopleProjectStage3       SELECT        GRANT
MetricsUser    SQL_USER   tblPeopleProjectStage3       UPDATE        GRANT
MetricsUser    SQL_USER   Update_Text_In_Raw_From_Init EXECUTE       GRANT
MetricsUser    SQL_USER   tblPeopleProjectStage4       DELETE        GRANT
MetricsUser    SQL_USER   tblPeopleProjectStage4       INSERT        GRANT
MetricsUser    SQL_USER   tblPeopleProjectStage4       SELECT        GRANT
MetricsUser    SQL_USER   tblPeopleProjectStage4       UPDATE        GRANT
MetricsUser    SQL_USER   Split_Text_Into_Stage_4      EXECUTE       GRANT
MetricsUser    SQL_USER   Data_SPROC                   EXECUTE       GRANT
MetricsUser    SQL_USER   tblPeopleProjectStage0       DELETE        GRANT
MetricsUser    SQL_USER   tblPeopleProjectStage0       INSERT        GRANT
MetricsUser    SQL_USER   tblPeopleProjectStage0       SELECT        GRANT
MetricsUser    SQL_USER   tblPeopleProjectStage0       UPDATE        GRANT
MetricsUser    SQL_USER   NULL                         CONNECT       GRANT

再次,Stage0是问题,Data_SPROC正在被调用。我不确定要寻找什么。

编辑2:这是似乎是问题的存储过程区域;该truncate命令是否需要额外的权限?

INSERT INTO [Metrics].dbo.tblPeopleProjectStage1(Item_Title, Project_Name, User_Name, WY_Portions_Date)
SELECT s.Item_Title, s.Project_Name, s.User_Name, v.WY_Portions_Date
FROM 
(
SELECT d.Item_Title, d.Project_Name, d.User_Names, c.item User_Name, c.rn
FROM [Metrics].dbo.tblPeopleProjectStage0 d
CROSS APPLY [Metrics].dbo.splitstring(d.User_Names, ';') c
) s

Inner Join

(
SELECT d.Item_Title, d.Project_Name, d.WY_Portions_Dates,
c.item WY_Portions_Date, c.rn
FROM [Metrics].dbo.tblPeopleProjectStage0 d
CROSS APPLY [Metrics].dbo.splitstring(d.WY_Portions_Dates, '*') c
) v
on s.Item_Title = v.Item_Title
and s.rn = v.rn;

TRUNCATE TABLE [Metrics].dbo.tblPeopleProjectStage0
4

1 回答 1

1

我需要向我的“指标”用户添加“更改”权限。这样做之后,一切都很好!所以,虽然我添加了“权限”,但我没有添加“正确的权限”

于 2013-05-20T20:14:23.230 回答