고객은 150개가 넘는 필드로 구성된 테이블이 필요하며, 고객은 스캔 회사 직원들이 볼 수 있도록 일부 필드만 필요로 합니다. 이 요구사항은 뷰로 쉽게 구현할 수 있습니다. 고객도 요청합니다. 이 필드들, 스캔 회사는 개별 필드만 수정할 수 있습니다. 저는 열에서 권한 제어가 필요한 경우를 이전에 본 적이 없는데, 실험을 해봤는데 매우 흥미롭다고 느꼈습니다. 기록해 보세요
고객이 가지고 있습니다수요150개가 넘는 필드가 있는 테이블에서, 고객은 회사를 스캔하는 사람들에게 일부 필드만 보여주고 싶다고 요청했습니다.수요뷰로 쉽게 구현할 수 있고, 고객이 요청하면 이 필드들, 스캔 회사가 개별 필드만 수정할 수 있다고 요청합니다. 저는 열에서 권한 제어가 필요한 경우를 처음 경험해봤습니다. 실험을 해봤는데 매우 흥미롭다고 느꼈습니다. 기록해 보세요테스트과정. 1. 테스트 테이블 생성 및 포인트 테스트 데이터 삽입: SQL> table test(id number,table_name varchar2(50) 생성, 소유주 바르차르2(50), TABLESPACE_NAME 바르차르2(50)); 테이블 생성. SQL> insert in test select, rownum,table_name,owner, TABLESPACE_NAME dba_tables; 5490행이 생성되었습니다. SQL> 커밋; 커밋 완료. 2. 테스트 사용자를 만들고 기본 권한을 부여합니다: SQL> CONN / AS SYSDBA 연결되어 있어. SQL> 스트림 기본 테이블스페이스 사용자로 식별되는 사용자 스트림을 생성; 사용자가 생성한 것입니다. SQL> grant connect, resource to stream; 그랜트는 성공했다. 3. 테스트 사용자에게 열 수준 권한을 부여하기: SQL> conn auth/auth 연결되어 있어. SQL> 테스트에서 스트림에 대한 업데이트(id) 부여; 그랜트는 성공했다. SQL> 테스트 시 스트림에 삽입(table_name) 부여; 그랜트는 성공했다. SQL> SQL> grant select를 on test to stream; 그랜트는 성공했다. 4. 열 수준 권한 설정 정보 조회: SQL> 선택: 수혜자, 소유자, TABLE_NAME, COLUMN_NAME, 부여자, 특권, user_col_privs로부터 부여 가능; 수혜자 소유자 TABLE_NAME COLUMN_NAME 부여자 특권 GRA ------- ----- ---------- ----------- ------- --------- --- 스트림 인증 테스트 TABLE_NAME 인증 삽입 NO AUT AUTH TEST ID AUTH INSERT NO AUT AUTH TEST ID AUTH UPDATE NO 스트림 인증 테스트 ID 인증 업데이트 NO 5. 로그인 테스트 사용자가 SELECT 권한을 검증합니다: SQL> conn stream/stream 연결되어 있어. SQL> * 선택 (auth.test 순서에서 * 1 선택 가능) 여기서 rownum< =10; 소유자 테이블 공간TABLE_NAME 식별 ---------- -------------------- ---------- ---------- 1 ICOL$ 시스템 2 IND$ 시스템 3 COL$ 시스템 4 CLU$ SYS 시스템 5 TAB$ 시스템 6 LOB$ 시스템 7 COLTYPE$ 시스템 8 SUBCOLTYPE$ 시스템 9 NTAB$ 시스템 10 REFCON$ SYS 시스템 10행 선택. 6. 열 수준 UPDATE 권한 제어 확인: SQL> auth.test set update: owner='STREAM'(여기서 id =1); auth.test set owner='STREAM' 업데이트 (여기서 id =1) * 1행의 오류: ORA-01031: insufficient privileges 테스트 테이블의 OWNER 필드 값은 수정이 허용되지 않음을 알 수 있습니다. ORA-01031 보고: 권한 부족. 위 내용은 테스트 사용자에게 테스트 테이블의 ID 필드를 수정할 권한을 주므로, ID 필드를 수정할 수 있습니다. SQL> update auth.test set id=10 (id=1); 1행 업데이트. SQL> 롤백; 롤백 완료. 7. 열 수준 INSERT 권한 제어 검증: SQL> auth.test 값(1,'stream','stream','users')에 삽입; auth.test 값(1,'stream','stream','stream','users')을 삽입합니다. * 1행의 오류: ORA-01031: insufficient privileges 위 내용은 테스트 사용자에게 테스트 테이블의 TABLE_NAME 필드를 수정할 수 있는 삽입 권한을 주므로, 다른 필드TABLE_NAME NOT SOME 제약 조건이 없을 때만 필드를 삽입할 수 있습니다. SQL> auth.test(table_name) 값('stream')을 삽입; 1행 생성. SQL> 롤백; 롤백 완료.
|