Crystal Reports의 일괄 처리를 PDF 파일로 실행/내보내기하는 C# 응용 프로그램을 구축하고 있습니다. 일부 테스트에서는 데이터를 보고서로 푸는 것이 훨씬 더 효율적이라는 것을 보여주었습니다. ReportDocument
자체 데이터를 새로 고침하는 것보다 훨씬 효율적입니다.C# 응용 프로그램이 SQL Server 데이터베이스에서만 읽을 수 있도록하려면 어떻게해야합니까?
Crystal Reports에서 SQL을 추출하는 방법을 찾았습니다. 이제는 SQL을 안전하게 실행하고 결과를 다시 Crystal Report에 바인딩하면됩니다. 내 문제는 Crystal Reports가 사용자가 해로운 Crystal Reports를 작성하지 않도록 검사가 내장되어 있지 않다는 것입니다. 당신은 크리스탈 리포트를 만들 SQL 명령 테이블을 추가하고은 "쿼리"로 다음을 제공 할 수 있습니다
DELETE FROM tbl_Test; SELECT * FROM tbl_Test
크리스탈 리포트는 위의 SQL에 문제가 표시되지 않습니다. 보고서를 새로 고침하면 tbl_Test
에있는 모든 데이터가 삭제됩니다. 유일한 제한 사항은 보고서를 작성/실행중인 SQL 사용자의 권한입니다.
그래서 내 프로그램이 유해한 것을 실행/실행하지 않도록해야합니다. 최선의 방법은 모든 데이터베이스에 대한 읽기 전용 액세스 권한을 가진 새 사용자 계정을 SQL Server에 만들고이 계정을 사용하여 응용 프로그램 내에서 연결을 설정하는 것입니다.
이 문제는 사용자가 기존 SQL Server 사용자 계정으로 로그인하게하여 액세스 권한이있는 데이터베이스에 대한 기존 권한이 각각 부여된다는 것입니다. 각 사용자가 개인 권한에 따라 볼 수있는 것을 제한해야하지만이 사용자 중 일부는 많은 데이터베이스에 대한 쓰기 권한을 가지고 있으며 응용 프로그램의 모든 데이터베이스에 대한 연결이 100 % 읽기 전용.
/삽입/업데이트/삭제 권한이있는 사용자 계정의 SQL 인증을 사용하여 SQL Server에 읽기 전용 연결을 설정하는 방법은 무엇입니까?
P. 필자는 충분한 권한/노하우/동기 부여를 가진 사용자가 Crystal Reports (... 또는 3 차 애플리케이션의 수에 관계없이)를 사용하여 데이터베이스에 직접적으로 피해를 줄 수 있음을 알고 있습니다. 지금 나는 내 신청서를 무의미한 공범자로 만들 수 없다는 점에 더 많은 관심을 가지고 있습니다. = P
먼저 읽기 권한보다 많은 권한을 가진 사용자로 데이터베이스에 연결하지 마십시오. – vcsjones
사용자를 배치 할 수있는 스키마 또는 역할을 만든 다음 테이블 사용 권한을 수정하지 않는 이유는 무엇입니까? 결국 스키마 또는 역할에 영향을 미치게됩니다. 그게 .. 만약 당신이 정말로 원하는 것보다 더 많은 접근으로 새로운 사용자를 만들 수 없다면. – Nonym
우리는 많은 수의 데이터베이스를 보유하고 있으며 각 사용자 계정에는 각각 다른 권한이 있습니다. 나는 여전히 모든 사용자가 설정된 권한 범위 내에 있어야 함을 보장해야하지만 내 응용 프로그램이 읽기 전용 작업 만하도록 제한해야합니다. 사용하는 다른 응용 프로그램이 삽입을 허용하더라도/업데이트/삭제. 각 사용자는 액세스 할 수있는 데이터베이스를 제한하는 특정 권한을 가지고 있으므로 별도의 읽기 전용 계정 만 사용할 수는 없습니다. 내 소유를 명확히하는 데 도움이되기를 바랍니다. – Chronicide