저는 Oracle 11g 데이터베이스 테이블의 디자인을 여전히 수정하고있는 꽤 새로운 프로젝트를 진행하고 있습니다. 따라서 테이블 생성 스크립트가 변경 될 때마다 예상대로 작동하는지 확인하기 위해 테이블을 상당히 자주 삭제하고 다시 만듭니다.삭제 및 재 작성중인 테이블에 대해 GRANT를 유지하는 방법은 무엇입니까?
데이터베이스는 2 개의 스키마로 구성됩니다. 하나의 스키마에는 INSERT
트리거가있는 일부 테이블이있어 데이터가 두 번째 스키마의 테이블에 복사되는 경우가 있습니다. 예를 들어 sysdba
및 GRANT
과 같은 관리자 계정으로 데이터베이스에 로그인해야 첫 번째 스키마에 대한 두 번째 스키마의 필요한 테이블에 대한 액세스가 필요합니다.
GRANT ALL ON schema_two.SomeTable TO schema_one;
우리의 문제는 때마다 우리는 우리의 데이터베이스 디자인을 변경 한 드롭, 우리 GRANT
테이블이 떨어졌다 때 멀리 갔다 schema_one
에 -ed 접근을 우리의 데이터베이스 테이블을 다시 만들어야 할 것입니다. 따라서 관리자 계정으로 로그인해야이 테이블 중 하나를 삭제하고 다시 만들 때마다 액세스가 다시 이루어져야합니다.
이것은 큰 문제는 아니지만 개발 및 테스트 절차에서 가능한 많은 단계를 없애고 싶습니다. 어떤 방법으로도 GRANT
테이블에 액세스 할 수 있습니까? GRANT
-ed 권한은 테이블이 삭제 된 후 다시 살아남을 때 생존 할 수 있습니까? 그리고 이것이 가능하지 않다면, 이것에 대해 갈 수있는 더 좋은 방법이 있습니까?
예 - 우리에게 이것은 테이블 생성 스크립트의 일부입니다. 나는 또한 문제 설명에서 무언가를 놓쳐 버렸음에 틀림 없다. – DaveE
감사합니다. 실제로'SELECT ANY TABLE' 권한에 대해서는 알지 못했습니다. 나는 GRANT ALL ON schema_one. *과 동등한 것이 없다는 것을 알았으므로 스키마 담요에 이와 같은 권한을 줄 수 있다는 것을 깨닫지 못했습니다. –
그건 아마 당신이 프로덕션에서 원하는 것이 아니거나 당신도 그 env를 소유하지 않으면 가질 수 있다고 가정해야합니다. 왜 테이블 생성과 같은 스크립트에서 권한을 부여 할 수 없는지 잘 모르겠습니다. schema_two는 모든 사람에게 자체 개체에 대한 사용 권한을 부여 할 수 있어야하며 프로덕션 설치를 시작할 때 단계를 줄일 수 있습니다. 네가 할 수없는 이유가 있니? –