programing

Oracle : 다른 스키마에 테이블 생성을 허용하시겠습니까?

bestprogram 2023. 10. 9. 23:28

Oracle : 다른 스키마에 테이블 생성을 허용하시겠습니까?

Schema1과 Schema2 두 사용자가 있습니다.

Schema1에 Create Table On Schema2 권한을 부여하는 방법?

계속 뒤돌아서서 헷갈렸어요.시도했습니다.

Schema2에서 해봤는데요.

GRANT CREATE TABLE TO SCHEMA1 WITH ADMIN OPTION;

그러나 이것은 Schema2가 아닌 자체 Schema1에 Creating table을 부여하는 것 같습니다.

좋은 생각 있으세요?

감사해요.

DBA 사용자가 아닌 사용자가 다른 스키마에서 테이블을 생성할 수 있도록 허용하는 유일한 다른 방법을 제공하는 것입니다.CREATE ANY TABLE시스템 권한.

이 권한은 다음 권한에만 부여할 수 있습니다.SCHEMA1 by a user having the CREATE ANY PRIVILEGE특권.

당신은 허락하길 원합니다.create ANY table:

grant create any table to schema1;

any"modifier"를 사용하면 자신의 스키마가 아닌 다른 테이블을 만들 수 있습니다.

보다 나은 솔루션(와 함께 제공되는 보안 위협 최소화)CREATE ANY TABLE권한...)

  • 스키마2에서 테이블 정의를 "input" 매개 변수로 사용하는 프로시저를 만듭니다(예: varchar2(4000)의 p_tab_def).
  • 내부에 execute_immediate(p_tab_def); 문을 넣습니다."CREATE TABLE [...]" 이외의 다른 DDL 문으로부터 자신을 방어하기 위해서는 p_tab_def를 먼저 확인해야 합니다(예: 처음 두 단어를 확인하여 간단한 확인을 사용할 수 있음 -> "CREATE TABLE"이어야 함).
  • GRANT EXECUTE ON schema2.procedure_name TO schema1;

단순한 개념입니다...전 직장에서 그런 개념을 사용한 적이 있습니다.

언급URL : https://stackoverflow.com/questions/21412747/oracle-grant-create-table-in-another-schema