2014-12-03 6 views
0

안녕 얘들 아,오라클 쿼리에 DDL, DCL, TCL 명령을 방지하는 방법

나는 SQL 쿼리의 ASP.NET에서 오라클을 수행하는 응용 프로그램을 개발 그리고 난 모든 DDL의 목록을 얻으려면 , DCL, TCL 예약어는 데이터베이스 변경을 방지합니다.

아마,이 목록에 oracle에 데이터베이스 테이블이 있습니까? v_ $ reserved_words처럼.

모든 권한을 가진 일반 사용자로 데이터베이스에 연결하고 회사에서 저를 변경할 수 없기 때문에 여러분의 도움이 정말 감사 할 것입니다.

+1

이 필요합니다. Btw : 실제로 'V $ RESERVED_WORDS'보기가 있지만이 예약어가 어떤 종류의 진술에 속하는지 알려주지 않으므로 도움이되지 않습니다. –

+6

특정 진술을 확인하는 대신 앱을 사용하는 데 필요한 권한 만 부여하여 사용자가 수행 할 수있는 작업을 제어해야한다고 제안합니다. 이들이 실행할 수있는 능력이없고 ALTER TABLE 문을 사용하면 명령문이 실패합니다. 그게 더 전형적이고 훨씬 쉬울 것입니다. –

+0

안녕하세요, 도움 주셔서 감사합니다.하지만 어떻게이 허용 된 진술을 얻을 수 있습니까? 그리고 실제로, 제한된 단어를 알 수있는 방법은 없습니다. : S – Faruck

답변

4

새 사용자를 만들고 연결 역할을 부여하고 볼 수있는 테이블,보기에 대한 사용 권한 만 선택하면됩니다.

create user test identified by notagoodpassword; 

grant connect to test; 

grant select on schema.table to test; 

편집 : -이 목록은 짧은 _much_ 될 수 문 목록을 유지 : 당신은 사용자가 procedute/함수를 호출 할 경우 라운드 그것을 다른 방법을 수행

grant execute on schema.procedure to test; 
+0

안녕하세요,이 예제는 많은 도움이됩니다. 정보를 얻기 위해 프로 시저를 실행하려고하면 실행 권한이 필요하지만 정말 도움이되었습니다. – Faruck

+0

답변에 추가했습니다. –