SqlCommand를 사용하여 RPC를 통해 저장된 proc을 호출 할 때 현재 데이터베이스가 아닌 다른 데이터베이스에서 저장된 proc을 호출 할 수있는 것처럼 보입니다.SqlCommand - 다른 데이터베이스에서 저장된 proc 호출을 방지하는 경우
:
string storedProcName = "SomeOtherDatabase.dbo.SomeStoredProc";
SqlCommand cmd = new SqlCommand(storedProcName);
cmd.CommandType = CommandType.StoredProcedure;
나는 다른 데이터베이스에 대한 잠재적 호출을 금지함으로써 내 DAL 코드를 더 제한적으로 만들고 싶습니다. 한 가지 방법은 위의 storedProcName에 두 개의 마침표 (점)가 있는지 확인하는 것입니다. 그렇다면 예외를 throw합니다. 다른 아이디어/접근법?
감사합니다.
데이터베이스 서버 측? – hallie
좋은 생각인데, 우리는 그것을 트랙 아래로 할 것입니다 (많은 데이터베이스가 있기 때문에 우리의 경우에 설정하는 것이 약간 일 것입니다). 그러나 나는 DAL에 수표를 넣는 아이디어를 좋아한다. 왜냐하면 내가 비교적 쉽게 확인해야한다고 생각했기 때문이다. –