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