2008-09-27 4 views
1

패키지 및 트리거를 만들기 위해 사용자가 자신의 스키마에 대한 권한을 필요로하는 이유는 무엇입니까?사용자 권한

답변

2

사용자가 자신의 스키마에 특정 유형의 객체를 만들기 위해 특정 권한 (예 : CREATE TABLE, CREATE PROCEDURE 등)이 필요한 이유를 묻는 중입니까?

그렇다면 자연스러운 대답은 최소한의 권한으로 시작하는 보안이 안전하다는 것입니다. 즉, 사용자는 자신의 업무를 진정으로 수행해야하는 권한 만 가질 수 있습니다. DBA는 프로덕션 데이터베이스의 사용자에 대해 읽기 전용 계정을 자주 만들고 싶어합니다 (예 : 비즈니스 분석가는 여러 가지 종류의 특수보고를 수행해야하며 개발자는 특정 유형의 문제를 해결하기 위해 액세스해야 할 수도 있습니다). 사용자가 항상 자신의 스키마에서 개체를 만들 수있는 경우 해당 읽기 전용 사용자는 변경 제어를 거치지 않거나 반드시 테스트해야하는 작업없이 프로덕션 데이터베이스에 코드를 갑자기 배포 할 수 있습니다. 그리고 그것은 일반적으로 코드에서 기본적으로 똑같은 방식으로 확산됩니다 (즉, 수십 명의 분석가가 각각 자신의 스키마에서 판매 세를 계산하는 절차를 가짐). 그러나 각각 고유 한 서명, 논리, 요구 사항, 가정 등이 있습니다. 그리고 천국은 DBA가 자신의 계정을 자연히 삭제할 것이므로 분석가의 스키마에 존재하는 코드에 의존하는 중요한 보고서를 발견하기 위해서만 분석가 중 한 명이 해고되는 것을 금지합니다. 사용자를하지 왜

1

"공식적인"답변을 드릴 수는 없지만 어떻게 작동하는지 추론 할 수는 있습니다. 필자가 진행하는 프로젝트에서 Oracle Developers는 트리거와 패키지를 데이터베이스 스키마에 배포하는 개발자입니다. 하지만 우리는 Java 개발자와 테스터 등 다른 팀을 보유하고 있습니다. 일단 스키마가 테스트 환경과 생산 환경으로 마이그레이션되면 테스터 또는 최종 사용자 응용 프로그램이 관련 트리거 및 패키지를 임의로 수정할 수 없도록해야합니다. 그 스키마는 수행중인 테스트의 무결성을 무효화 할 수 있기 때문에 (또는 프로덕션 시스템에서 더 심각한 문제를 일으킬 수 있습니다.)

테스터, Java 개발자 및 최종 사용자 응용 프로그램이 스키마에 데이터를 읽고 쓸 수 있지만 기준선을 포함하는 트리거 및 패키지는 수정할 수 없도록하려는 경우 암호.

0

패키지를 만들 수 자신의 스키마를 통해 권한을 필요로하고 그들은하지 않습니다 트리거합니다.

자신의 스키마는 username.object 모든 사용자가 자신의 스키마에 트리거를 만들 필요가 에 의해 정의 된 소유권 (또는 네임 스페이스)입니다 의미 : 자신의 스키마 의 테이블 트리거 권한

를 만들

모든 사용자가 자신의 스키마에 패키지를 만들 필요가있다 : 사용자가 참조 다른 개체 다른 스키마 또는 객체를 생성하고자하는 경우 이 (가)

패키지 권한을 만들거나 그 다음 테이블에 저장을 필요로 그들이 permissi가 필요합니다. 그 외국 물건에 ons.