2016-06-10 1 views
-1

이, 나는 일반적인 SQL Server 오류 알고있다 :SQL 서버 권한

The EXECUTE permission was denied on the object 
'GetStaffDirectoryListingsByCompany', database 'MyDB', schema 'dbo'. 

나는에 대한 실행 권한을 추가하여 SSMS에서 문제를 해결할 수 있었다 'AppPool을 \을 DefaultAppPool는 IIS'. 이 응용 프로그램 'IIS APPPOOL \ MyAppPool'에 대한 특정 AppPool을 추가하려고했지만 SSMS에서 찾을 수 없습니다. 왜 이런 일이 일어나는 걸까요?

내 질문은 간단합니다 : 수십 개의 저장 프로 시저가있는 DB의 경우 각 저장 프로 시저에 대해 수동으로 수행해야하는 대신이 사용 권한을 한 번 추가하는 방법은 무엇입니까?

내가 얻을 수있는 일을 다음

https://msdn.microsoft.com/en-us/library/ms187940.aspx

UPDATE에게

나는이 문제에 대한 몇 가지 배경을 지적한다 :

첫째, 내 Win7에 dev에 기계를 Windows 10으로 업그레이드되었고 어떻게 든 모든 프로젝트가 IIS의 DefaultAppPool과 연결되었습니다 (자체 응용 프로그램 풀뿐 아니라).

두 번째로 DB는 프로덕션 서버의 버전에서 로컬 컴퓨터로 복원되었습니다 (아마도 사용 권한이 엉망인 이유는 무엇입니까?).

답변

2

당신은 예를 들어, 스키마 또는 전체 DB에 EXECUTE 권한을 부여 할 수 있습니다 :

USE [myDatabase] 
go 

-- Grant EXECUTE permission on the schema dbo 
GRANT EXECUTE ON SCHEMA::[dbo] TO [myUser] 
go 

또는

USE [myDatabase] 
go 

-- Grant EXECUTE permission on the DB 
GRANT EXECUTE TO [myUser] 
go 

도움이 되었기를 바랍니다.


IrishChieftain에 의해 코멘트까지 다음은

더 신중하게 특정 시나리오를 읽고되면, 나는 그것이 myDB 데이터베이스에 당신에게 IIS APPPOOL\MyAppPool 표시되지 않습니다 SSMS처럼 보이는 것을 알 수있다.

대부분의 근본 원인은 다른 그룹이 DB에 대한 응용 프로그램 액세스 권한을 부여한다는 것입니다. 저는 IIS 전문가가 아니며 기본 풀에 대한 액세스를 허용하는 것이 왜 효과가 있는지 확신하지 못합니다 (SID가 일치해서는 안됩니다. 앱이 실제로 기본 응용 프로그램 풀에서 실행되고있을 수 있습니까?).

어쨌든 다음을 시도해 보는 것이 좋습니다. myUser을보다 구체적인 풀 IIS APPPOOL\MyAppPool으로 바꾸십시오. 명령은 암시 적으로 사용자를 생성해야하며 SSMS에 표시되기 시작해야합니다.

효과가 있다면 알려주세요. 다른 접근 방식을 시도해 볼 수 있습니다.

+0

연결 문자열에서 Integrated Security를 ​​사용하여 로컬로 개발 중입니다. 이 시나리오에서 "myUser"는 무엇입니까? – IrishChieftain

+0

IIS DefaultAppPool에는 11 개의 응용 프로그램이 있습니다! DefaultAppPool을 마우스 오른쪽 버튼으로 클릭하고 "응용 프로그램보기"를 선택했습니다. MyApp의 AppPool을 MyAppPool로 변경했습니다. 왜 이것이 IIS에서 발생하는지 알 수 없습니다. MyAppPool은이를 사용하는 두 개의 응용 프로그램을 보여줍니다. "/"접두어가 붙은 것을 제거했습니다.IIS에서 사이트를 제거했지만 MyAppPool은 여전히 ​​하나의 사이트를 사용하고 있으므로 앱 풀을 삭제할 수 없습니다. – IrishChieftain

+0

IIS에서 이중 항목을 수정했습니다. 테이블에 대한 사용 권한 오류가 계속 발생합니다. System.Data.SqlClient.SqlException : SELECT 권한이 'Staff'데이터베이스, 'MyDB'개체, 'dbo'개체에서 거부되었습니다. – IrishChieftain