Oracle FUNCTION 권한 - Oracle FUNCTION gwonhan

데이터베이스 질문과 답변

create function 권한은 어떻게 부여하나요? 0 0 6,043

by 손님 [2010.09.09 17:15:24]

grant create function to user;

권한이 불충분하다고 하네요.

다른 옵션이 있는건가요? (sys 유저에서도 권한 없다고 나와요. ㅠㅠ)

===> 자문자답합니다. ㅡㅡ;

grant create procedure to user;

댓글등록

SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code(

) 버튼을 클릭하여 작성 하시면 됩니다.

로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입

I want to give privileges to a user to call a function another users function.

I write this : GRANT EXECUTE ANY FUNCTION TO user;

but it doesn't work.

user need to call this:

call XXX.YYY.AlterAllInvalidObjects(NULL,'PACKAGE BODY');

but how can I give grant ?

NOTE : I don't want to use : GRANT EXECUTE ON FUNCTION AlterAllInvalidObjects TO user; I need general solution not specific function name.

asked Sep 13, 2012 at 9:25

Ersin GulbaharErsin Gulbahar

6,79915 gold badges63 silver badges118 bronze badges

GRANT EXECUTE ANY PROCEDURE TO user;

//docs.oracle.com/cd/B19306_01/server.102/b14200/statements_9013.htm#i2077938

will manage both functions and procedures. You can't grant that way to functions only...

EDIT

the other way (but you'll have to run it every time the other user will create a new function to get all the grants):

Run

select 'GRANT EXECUTE ON '||owner||'.'||object_name||' TO user;' from all_objects where owner = 'xxx' and object_type='FUNCTION';

and copy-paste-execute the result...

or use a SP doing the same thing (cursor on the query and execute immediate in loop)

answered Sep 13, 2012 at 9:31

Raphaël AlthausRaphaël Althaus

59.1k6 gold badges94 silver badges120 bronze badges

--1. 사용자에게 부여된 시스템 권한 확인 SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE = '사용자명'; --2. 사용자에게 부여된 롤 확인(시스템 권한이 롤에 포함됨) SELECT * FROM DBA_ROLE_PRIVS WHERE GRANTEE = '사용자명'; --3. 사용자에게 부여된 롤에 부여된 시스템 권한 확인 SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE = '롤명'; --4. 타 사용자에게 부여한 객체(테이블등)권한 확인 SELECT * FROM DBA_TAB_PRIVS WHERE OWNER = '테이블소유자명'; SELECT * FROM DBA_TAB_PRIVS WHERE GRANTEE = '권한부여자명';

권한 부여
--1. 테이블 권한 주기 grant select, insert, update, delete on [테이블명] TO [사용자명] --2. 함수 권한 주기 grant EXECUTE on [테이블명] to [사용자명]; --3. 시퀀스 권한 주기 grant select,alter on [시퀀스명] to [사용자명];

1. 테이블 조회 권한 주기 [SELECT]

GRANT SELECT ON 권한 줄 테이블명 TO 권한 받을 사용자계정;

2. 테이블 입력이나 수정 삭제의 권한을 부여 [INSERT , UPDATE , DELETE ]

GRANT  INSERT , UPDATE , DELETE  ON 권한 줄 테이블명 TO 권한 받을 사용자계정;

3. FUNCTION 실행 권한 주기 [execute]

GRANT EXECUTE ON 권한 줄 함수명 TO 권한 받을 사용자계정;

SYNONYM 생성

내 계정에서 다른 계정의 특정 테이블을 내 계정에서 볼때 Alias(별칭)를 정해놓고,
그 테이블을 참조할때 Alias 로 참조한다.

CREATE SYNONYM 시노님명  FOR  계정명.테이블명;

[예제]

1. SELECT * FROM USER_NAME.YNGMST;

2. CREATE SYNONYM YNG FOR USER_NAME.YNGMST;

3. SELECT * FROM YNG;

=> 1 과 3 은 똑같은 내용임.

출처: //jhbench.tistory.com/299

오라클 계정에 OJBECT(FUNCTION, PACKAGE) 권한주기

ORACLE / DB
 

2012. 12. 6. 13:21

//blog.naver.com/james2021/30153185160

GRANT EXECUTE ON "권한있는계정"."FUNCTION_NAME" TO "권한받는계정"; 

GRANT EXECUTE ON "권한있는계정"."PACKAGE_NAME" TO "권한받는계정"; 

Toplist

최신 우편물

태그