2010-11-29 5 views
8

저는 학부 과정을 공부하는 학생이며 데이터베이스 Oracle 10g 모드에서 사용자 B가 소유 한 저장 프로 시저에 대해 사용자 A에게 소유권을 부여하는 데 거의 문제가 없습니다 = xe. Oracle의 다른 사용자에게 저장 프로 시저에 대한 권한 부여

내가 당신이 "소유권의 권리"가 무슨 뜻인지 이해 확실하지 않다 다른 사용자 A.

답변

20

에 저장 프로 시저 XYZ에 대한 소유 권한을 부여하기위한 SQL 명령을 서면으로 저를 도와주세요. 사용자 B가 저장 프로 시저를 소유하고있는 경우

, 사용자 B는

BEGIN 
    b.procedure_name(<<list of parameters>>); 
END; 
즉, 사용자에게 다음 정규화 된 이름을 사용하여 프로 시저를 호출 할 저장 프로 시저를

GRANT EXECUTE ON b.procedure_name TO a 

사용자 A를 실행하는 권한을 부여 할 수 있습니다

사용자 A는 완전한 프로 시저 이름을 사용하지 않아도되도록 동의어를 만들 수 있습니다.

CREATE SYNONYM procedure_name FOR b.procedure_name; 

BEGIN 
    procedure_name(<<list of parameters>>); 
END; 
4

나는 당신이 원하는 것을 할 수 없습니다.

프로 시저에 부여 할 수있는 유일한 권한은 EXECUTE 및 DEBUG입니다.

사용자 B가 사용자 A 스키마에서 프로 시저를 작성하도록하려면 사용자 B에게 CREATE ANY PROCEDURE 권한이 있어야합니다. ALTER ANY ANC ANY PROCEDURE 및 DROP ANY PROCEDURE는 사용자 B에 대한 사용자 A 프로 시저를 변경하거나 삭제하는 데 필요한 다른 적용 가능한 권한입니다. 사용자 B를 특정 스키마로 제한하지 않으므로 모두 모두 광범위한 권한입니다. 사용자 B는 이러한 권한이 부여 된 경우 높은 신뢰를 얻어야합니다.

편집 :

GRANT EXECUTE ON b.procedure_name TO a; 
+1

+1 CREATE ANY PROCEDURE보다 덜 격렬한 접근 방법뿐 아니라 사용자 B에게 해당 사용자로 로그인 할 수있는 암호를 사용하는 응용 프로그램에 함정을주는 것이 좋습니다. 스키마 레벨 권한을 부여하려는 것 같지만 오라클에서는 사용할 수 없습니다. –

+0

오케이 선생님, PLZ 사용자 B의 저장 프로 시저를 실행하기 위해 UserA에게 실행 권한을 부여하는 방법을 알려주십시오. – Basmah

0

패키지 및 오라클에서 저장 프로 시저의 권리를 사용하여 기본적으로 실행 : 저스틴 B가 소유 한 프로 시저에 실행 권한을 부여하는, 방법을 언급 한 바와 같이

패키지/프로 시저 OWNER, 현재 로그온 한 사용자가 아닙니다.

예를 들어 사용자를 생성하는 패키지를 호출하면 사용자 생성 권한이 필요한 호출 사용자가 아닌 패키지 소유자가 호출됩니다. 호출자는 패키지에 대한 실행 권한이 있어야합니다. 패키지가 호출하는 사용자의 권한을 사용하여 실행되어야 함을 선호하는 경우 패키지를 생성 한 후 때

, 당신은

오라클 문서는 "호출자 권한이 정의 자 권한이 대"자세한 내용을하고있다 http://docs.oracle.com/cd/A97630_01/appdev.920/a96624/08_subs.htm#18575

AUTHID CURRENT_USER를 지정해야

희망이 도움이됩니다.

0
SQL> grant create any procedure to testdb; 

"testdb"사용자에게 생성 권한을 부여하려는 경우 명령입니다.당신의 DBA 계정에

1

, grant create any procedure to USERB

절차는 나는 이것이 아주 오래된 질문입니다 알지만

CREATE OR REPLACE PROCEDURE USERB.USERB_PROCEDURE 
--Must add the line below 
AUTHID CURRENT_USER AS 
    BEGIN 
    --DO SOMETHING HERE 
    END 
END 

GRANT EXECUTE ON USERB.USERB_PROCEDURE TO USERA

를 볼 것이다 USERB에게 보조금을 사용하여 프로 시저를 만들 수있는 권한을 부여 나는 그것을 조금 칩 수 있기를 바라고있다.