2009-10-24 2 views
0

데이터베이스를 저장 프로 시저만을 사용하여 액세스 할 수있는 방법을 제한하고 싶습니다. System.Data.SqlClient.SqlBulkCopy을 제외한 모든 것이 정상적으로 작동합니다. 방대한 데이터를 가져 오기 위해 하나의 클래스에서만 사용하고 있습니다.'db_datawriter'권한없이 SQL 2008에서 SqlBulkCopy를 사용할 수 있습니까?

이 문제를 방지 할 수 있습니까? 나도 같은 사용자로 그것을 실행하고있어

User does not have permission to perform this action.

:

EXEC [db_mod].[sys].[sp_addrolemember] N'db_datawriter', N'my_user' 
EXEC [db_mod].[sys].[sp_droprolemember] N'db_datawriter', N'my_user' 

하지만 이러한 접근 방식은 오류를 발생시킵니다 :

나는 SqlBulkCopy를 호출하기 전에 권한을 부여하고 이후에 제거하기 위해 노력했다. 필요한 것을 어떻게 허용 할 수 있습니까?

답변

3

sp_addrolemember()에서 시도한 후 설명 된 오류는 계정 및 보안 설정을 변경하는 데 필요한 권한이없는 현재 사용자와 관련이 있습니다.

SqlBulkCopy 실행과 관련하여 쓰기 권한이 필요하며 db_datawriter 역할을 제공하는 것이 편리하지만 대체 방법을 고려할 수 있습니다. 예를 들어, 현재 계정의 보안 권한을 (일시적인 경우에만) 늘리는 대신이 특정 데이터베이스/테이블과 관련된 보안 설정을 수정할 수 있습니다.

데이터베이스 개체와 같은 "보안 개체"의 보안 설정을 변경하려면 일부 관리 권한이 필요하지만 데이터베이스 소유권과 관련 될 수 있으므로 계정을 변경할 권한이 없어도 사용할 수 있습니다 .

관련 문제