2011-12-29 3 views
3

중복 된 userId가있는 행이있는 테이블이 있습니다. 나는테이블에서 행을 삭제하는 동안 권한

delete from table_name where userId=123

나는 데이터베이스에 권한을 선택 모두 포기하고 삭제하면이 쿼리에만 작동으로 행의 삭제하려합니다. 선택 권한을 부여하는 것이 의무입니까?

답변

3

대상 테이블에 DELETE 권한이 필요합니다. 명령문에 WHERE 절이 있으면 SELECT 권한이 필요합니다. 여기에 마이크로 소프트에서 링크는, 권한 섹션

http://msdn.microsoft.com/en-us/library/ms189835.aspx

+0

은 왜 그런지 아십니까 참조? * DELETE * 문에 * WHERE * 절이 있으면 행을 삭제하는 동안 * DELETE * 사용 권한 이외에 * SELECT * 사용 권한이 필요한 이유는 무엇입니까? – Lion

+0

정확히 왜 그런지 모르겠지만 SQL Server 엔진은 SELECT (선택 권한이 필요함)를 먼저 수행하여 조건을 만족하는 행을 가져온 다음 DELETE를 실행합니다. – kosa

+0

여기에 관련된 정보가 있습니다. http://sqlblog.com/blogs/linchi_shea/archive/2011/10/17/is-the-select-permission-checked-in-an-update-statement.aspx – Naveen

관련 문제