2014-03-19 2 views
0

권한/취소를 설정하고 oracle apex에서 역할을 만들고 싶습니다. 그러나 나는 사용자를 위해 이것을하고 싶지는 않지만 표의 ID를 기반으로하는 테이블의 데이터에 대해서는 데이터를 업데이트하기위한 권한을 취소하고자합니다. 이것이 가능하고 이것이 가능한 가장 좋은 방법은 무엇입니까?Oracle SQL을 부여/취소

답변

0

테이블의 특정 행에 대해서는이 작업을 수행 할 수 없습니다. 한 테이블에 대해서만 GRANT/REVOKE를 발행 할 수 있습니다.

http://docs.oracle.com/javadb/10.8.3.0/ref/rrefsqljgrant.html

당신은 응용 프로그램 (PL/SQL) 수준에서 테이블의 특정 데이터에 대한 업데이트를 처리해야합니다.

+0

내 문제는 특정 행에 대해 부여/취소하려는 것이 아닙니다. 데이터를 열에서 가져와 액세스 권한을 취소하려고합니다. 예 : Employee_Ids로 가득 찬 열이있는 경우 직원에게 공용 사용자로 지정하지 않고 Id가 할당 된 데이터 만 보길 원합니다. – user1643333

0

옵션의 몇 :

  • 당신은 Oracle Label Security를 사용할 수 있습니다 중 하나.

  • 현재 사용자의 EMPLOYEE_ID을 기반으로하는 쿼리가있는 테이블 상단에보기를 만들 수 있습니다.

0

지난 몇 주 동안 PostgreSQL에서 몇 가지 메모를 작성했습니다.

  1. 이런 종류의 일에 대해 데이터 상단에보기를 만들 수 있습니다.
  2. 행 수준 보안은 일반적으로 수행하기를 원합니다. 튜토리얼은 http://www.dba-oracle.com/concepts/restricting_access.htm을 참조하십시오.

첫 번째 접근 방식은 두 번째 접근 방식과 관련된 모든 문제를 가지고 있습니다. 그 이유는보기에 정책 엔진을 작성해야하기 때문입니다. 두 번째 접근법에서는 정책 엔진을 사용하면 방금 정책을 적용 할 수 있습니다. 경험에서

몇 가지 참고 사항 :

  1. 당신 정말 혹시 한 번에 일을 많은 행을 검토하려는 경우 테이블의 다른 행의 허가 데이터를보고 피하려고.
  2. 구현하기 전에 권한 검사가 성능에 미치는 영향을주의 깊게 생각하십시오.

이런 종류의 문제는 일반적으로 해결하는 데 다소 시간이 걸리는 성능 문제입니다. 생각하지 않은 유스 케이스가 중요 해지면 오랜 기간 동안 최적화 할 준비를하십시오.