2014-06-10 5 views
0

로그인 및 사용자를 생성하는 스크립트를 작성하고이 저장소에 Execute on 액세스 권한을 부여하여 SP_SELECTDEPT이라는 단일 저장소 절차 만 실행하고 role을 통해서만 직접 실행할 수 있습니다. 따라서 사용자는이 저장 프로 시저 만 실행하도록 액세스 할 수는 있지만 작동하지 않습니다.역할을 통해 사용자에게 권한을 부여해야합니다.

지금까지 해 보았습니다.

BEGIN TRANSACTION 
USE master 
CREATE LOGIN QGtestlogin WITH PASSWORD = 'test123', CHECK_POLICY=off 
GO 
USE DEPT 
CREATE USER QGtestlogin FOR LOGIN QGtestlogin 
go 

CREATE ROLE QGtestrole AUTHORIZATION QGtestlogin 
GO 

GRANT EXECUTE ON SP_SELECTDEPT TO QGtestrole 
go 

if @@ERROR > 0 
begin 
rollback transaction 
end 
else begin 
commit transaction 
end 

그러나 내가 새로 생성 한이 사용자로 로그인하면 실행하는 저장 프로 시저가 표시되지 않습니다.

는 참고 : 나는 같은 실행하면

Msg 229, Level 14, State 5, Procedure SP_SELECTDEPT, Line 14 
The SELECT permission was denied on the object 'Dept', database 'DEPT', schema 'dbo'. 

답변

0

SQLEXPRESS 판에 문제가 될 것 같습니다 : 나는 sp_addrolemember

exec sp_addrolemember 'QGtestrole','QGtestlogin' 

를 사용하지만 여전히 오류가 역할 구성원에 사용자를 추가 한 내 실제 개발 데이터베이스에서 코드가 실행되고 QGtestlogin이 저장 프로 시저를 실행할 수 있습니다.

관련 문제