2013-01-22 1 views
8

내 테이블의 한 열만 편집하도록 사용자에게 권한을 부여하고 싶습니다. 여기에 어떤 명령을 사용합니까? Oracle 11g 데이터베이스를 사용합니다. 나는 alrdy가 전체 테이블에 대해서만 읽기 또는 삭제 만 허용 할 수 있음을 알고 있지만 어떻게 하나의 컬럼 또는 그 이상에서만 그것을 수행 할 수 있습니까? pls 예제를 제공합니다. this source을 바탕으로테이블의 한 열만 변경하십시오.

답변

13

예를 들어, 당신은 (XYZ는 사용자 이름 임) 만 후 다음 문을 줄 ENAME 컬럼에 업데이트 권한을 부여 할

grant update (ename) on emp to xyz; 

구문 :

grant update(column-name) on table-name to user-name 

편집 : (granti에 대한

emp 테이블의 SELECT 문을 XYZ에 부여하고 XYZ가이 권한을 계속 넘길 수있게하려면 GRANT 문에 WITH GRANT OPTION 절을 부여해야합니다. 완벽한 일

grant update (ename),insert (empno, ename) on emp to xyz; 
+0

들으하지만 그냥 :

grant select on emp to xyz with grant option; 

또한, 예를 들어 당신이 ENAME 컬럼 만에 갱신 권한을 부여 만 EMPNO와 ENAME 컬럼에 특권을 삽입 할, 당신은이 작업을 수행 할 수 있습니다 빨간색은 select 문과 함께 작동하지 않습니다. 나는 대체 견해를 만들었다. 이게 맞습니까 –

+0

뜻 ... 선택 권한을 부여 할 수 없습니까? 우리는 select 권한도 부여 할 수 있다고 생각합니다. –

+0

주 : UPDATE 특권과 함께 테이블에 대해 SELECT 특권을 부여해야합니다. –

4

:

INSERT, UPDATEREFERENCES 권한은 열 수준에서 부여 할 수 있습니다. 열 수준에서 INSERT을 부여 할 때 행에 모든 not null 열을 포함해야합니다. 여기

은 예입니다

GRANT update (column_name) ON table_name TO user_name;