Как говорится в этой теме, я хочу иметь возможность передавать имена таблиц в качестве параметров с помощью .NET(неважно, какой язык на самом деле) и SQL Server.
Я знаю, как это сделать для значений, например. command.Parameters.AddWithValue("whatever", whatever)
используя @whatever
в запросе для обозначения параметра. Дело в том, что я в ситуации, когда я хочу иметь возможность сделать это с другими частями запроса, такими как имена столбцов и таблиц.
Это не идеальная ситуация, но я должен использовать ее, она действительно не подвержена внедрению SQL, поскольку только кто-то, использующий код, может устанавливать эти имена таблиц, а не конечный пользователь. Однако это грязно.
Итак, что я могу спросить?
EDIT: Чтобы понять, что SQL-инъекция очищена, имена таблиц передаются только исходным кодом, в зависимости от ситуации. Это разработчик определяет это. В любом случае разработчик будет иметь доступ к слою базы данных, поэтому причина, о которой я прошу, заключается не столько в безопасности, сколько в том, чтобы сделать код более чистым.