주제가 제시 한대로 .NET을 사용하여 매개 변수로 테이블 이름을 전달할 수 있기를 원합니다 (실제로 언어는 중요하지 않음). SQL Server..NET/SQL의 Parameterise 테이블 이름?
값에 대해이 작업을 수행하는 방법을 알고 있습니다. command.Parameters.AddWithValue("whatever", whatever)
@whatever
을 쿼리에 사용하여 매개 변수를 나타냅니다. 것은 내가 열 및 테이블 이름과 같은 쿼리의 다른 부분으로이 작업을 수행 할 수 있기를 바란다.
이것은 이상적인 상황은 아니지만 코드를 사용하는 사람 만 최종 사용자가 아닌이 테이블 이름을 설정할 수 있기 때문에 SQL 인젝션에 취약하지 않습니다. 그러나 그것은 지저분하다.
그래서 내가 원하는 것은 무엇입니까?
편집 : SQL 주입에 대한 요점을 없애기 위해 테이블 이름은 상황에 따라 소스 코드에 의해서만 전달됩니다. 이것을 지정하는 개발자입니다. 어쨌든 개발자는 데이터베이스 계층에 대한 액세스 권한을 가지므로 보안을 위해 많은 것을 요구하지는 않지만 코드를보다 명확하게 작성해야합니다.
넵, 소스 코드 및 소스 코드에서만. 이 작업을 리팩토링하는 동안 업데이트/삽입 문을 작성하는 것이 더 쉬운 작업입니다. – Damien