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