권한관련문의 0 6 1,122

by 제리공주 [Oracle 기초] 특정테이블SELECT권한 [2017.12.05 18:08:16]


A 유저 (DBA) 로 접속하여

B 유저 생성해주고 B 유저에게 CONNECTION 권한만 주었습니다.

A 유저에서  B.TABLE1을 생성하였습니다. (CREATE TABLE B.TABLE1 ~ 블라)

B는 TABLE1에 대해 모든 DML작업이 가능합니다.

질의 1. 혹시 B유저가 B.TABLE1에 대해 SELECT 만 가능하게 할수 있을까요?

      (테스트 해보니, 접속 권한만 주었는데도 DML 작업이 가능하더라고요. TABLE1이 B유저의 객체라 그런건가요? 강의를 보면 객체가 소유하고 있는 테이블의 DML의 권한은

      무조건 가지고 있다고 나와있는것 같긴한데 맞는건지 다른 방법이 있는지 잘 모르겠습니다.)

질의 2. B.TABLE1의 SELECT 만 가능하게 하려면 새로운 유저를 생성해서 SELECT 권한을 주어야 하는지 다른방법이 있는지 궁금합니다.

by 마농 [2017.12.05 18:31:39]
ALTER TABLE b.table1 READ ONLY;

 


by 제리공주 [2017.12.06 15:41:56]

아.. A 유저에서는 B.TABLE1에 데이터를 입력은 해야해요. 저렇게 하면 A유저에서도 입력이 안되서ㅠㅠ;;; 혹시 다른 방법 있을까요?


by 마농 [2017.12.06 15:52:27]

그렇다면 테이블의 owner 를 b 가 아닌 a 로 해야 하는 것 아닌가요?
a 에서 관리 하고 b 에 조회 권한만 주는 식으로


by 제리공주 [2017.12.06 16:06:01]

a 유저에도 동일한 테이블이 있어요.

일부만 발췌해서 동일한 이름의 테이블로 자료를 넣어주려다보니 ..


by 마농 [2017.12.06 16:14:04]

b 의 테이블은 drop 하시고.
a 의 테이블에 대한 조회 권한을 b 에 주시고.
b 에서 a.테이블에 대한 뷰 또는 시노님을 동일 이름으로 생성해 사용하세요.

-- 1. 시노님
CREATE SYNONYM b.t FOR a.t;
-- 2. 뷰
CREATE OR REPLACE VIEW b.t
AS
SELECT *
  FROM a.t
  WITH READ ONLY
;

 


by 제리공주 [2017.12.06 16:19:20]

다른 시스템에 연계하는 내용인데..ㅠ ㅠ 문제나 제약은 없겠죠?

차근차근 알려주셔서 감사합니다 !!

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입