USER
사용자 계정 만들기/권한 부여/권한 취소
먼저 SYS계정으로 접속하여 새로운 USER생성
SQL> CONN SYS/ORACLE AS SYSDBA
연결되었습니다.
SQL> CREATE USER USER1
2 IDENTIFIED BY TIGER
3 ;
사용자가 생성되었습니다.
SQL> CONN USER1/TIGER
ERROR:
ORA-01045: user USER1 lacks CREATE SESSION privilege; logon denied
경고: 이제는 ORACLE에 연결되어 있지 않습니다.
접속이안된다.SYS로부터 접속 권한을 부여받아야한다
SQL> GRANT CONNECT, RESOURCE TO USER1;
SP2-0640: 연결되지 않았습니다.
SQL> CONN SYS/ORACLE AS SYSDBA
연결되었습니다.
SQL> GRANT CONNECT, RESOURCE TO USER1;
권한이 부여되었습니다.
SQL> CONN USER1/TIGER
연결되었습니다.
SQL> select * from scott.emp;
select * from scott.emp
*
1행에 오류:
ORA-00942: 테이블 또는 뷰가 존재하지 않습니다
다른 계정으로 권한 부여
SQL> CONN SCOTT/TIGER
연결되었습니다.
SQL> GRANT SELECT ON EMP TO USER1;
권한이 부여되었습니다.(SCOTT --> USER1)
SQL> CONN USER1/TIGER
연결되었습니다.
SQL> SELECT * FROM SCOTT.EMP;
14 개의 행이 선택되었습니다.
Schema명과 User 명은 동일하다.
권한 취소하기 (SCOTT <-- USER1)
SQL> SHOW USER
USER은 "USER1"입니다
SQL> CONN SCOTT/TIGER
연결되었습니다.
SQL> REVOKE SELECT ON EMP FROM USER1;
권한이 취소되었습니다.
SQL> CONN USER1/TIGER
연결되었습니다.
SQL> SELECT * FROM SCOTT.EMP;
SELECT * FROM SCOTT.EMP
*
1행에 오류:
ORA-00942: 테이블 또는 뷰가 존재하지 않습니다
SYS 계정에서 USER1 권한 취소
SQL> CONN SYS/ORACLE AS SYSDBA
연결되었습니다.
SQL> REVOKE CONNECT, RESOURCE FROM USER1;
권한이 취소되었습니다.
SQL> CONN USER1/TIGER
ERROR:
ORA-01045: user USER1 lacks CREATE SESSION privilege; logon denied
경고: 이제는 ORACLE에 연결되어 있지 않습니다.
* DCL(DATA CONTROL LANGUAGE)
GRANT(권한부여), REVOKE(권한 회수)
두계정에 권한 한번에 주기
SQL> CREATE USER USER2
2 IDENTIFIED BY TIGER;
사용자가 생성되었습니다.
SQL> GRANT CONNECT, RESOURCE TO USER1, USER2;
권한이 부여되었습니다.
SQL> CONN SCOTT/TIGER
연결되었습니다.
SQL> GRANT SELECT ON EMP TO USER1;
권한이 부여되었습니다.
SQL> CONN USER1/TIGER
연결되었습니다.
SQL> SELECT * FROM SCOTT.EMP;
USER1이 받은 권한을 USER1이 USER2에게 줄때 이러면 오류가 난다.
SQL> GRANT SELECT ON SCOTT.EMP TO USER2;
GRANT SELECT ON SCOTT.EMP TO USER2
*
1행에 오류:
ORA-01031: 권한이 불충분합니다
다시 SCOTT계정으로
SQL> SHOW USER
USER은 "USER1"입니다
SQL> CONN SCOTT/TIGER
연결되었습니다.
SQL> GRANT SELECT ON EMP TO USER1
2 WITH GRANT OPTION;
권한이 부여되었습니다.
SQL> CONN USER1/TIGER
연결되었습니다.
SQL> GRANT SELECT ON SCOTT.EMP TO USER2;
권한이 부여되었습니다.
모든 테이블 열람할수 있는 권한
SQL> CONN SYS/ORACLE AS SYSDBA
연결되었습니다.
SQL> GRANT SELECT ANY TABLE TO USER1;
권한이 부여되었습니다.
다볼수 있다;;
SQL> CONN USER1/TIGER
연결되었습니다.
SQL> SELECT * FROM SCOTT.DEPT;
이것도 USER2에게 권한을 줘보자
SQL> CONN SYS/ORACLE AS SYSDBA
연결되었습니다.
SQL> GRANT SELECT ANY TABLE TO USER1 WITH ADMIN OPTION;
권한이 부여되었습니다.
SQL> CONN USER1/TIGER
연결되었습니다.
SQL> GRANT SELECT ANY TABLE TO USER2;
* 오브젝트 권한 에서는 WITH GRANT OPTION
시스템 권한에서는 WITH ADMIN OPTION
ROLE (생성은 SYS 관리자만 가능)
SQL> CONN SYS/ORACLE AS SYSDBA
연결되었습니다.
SQL> DROP USER USER1;
사용자가 삭제되었습니다.
SQL> DROP USER USER2;
사용자가 삭제되었습니다.
SQL> CREATE USER USER1
2 IDENTIFIED BY TIGER;
사용자가 생성되었습니다.
SQL> CREATE USER USER2
2 IDENTIFIED BY TIGER;
사용자가 생성되었습니다.
SQL> GRANT CONNECT, RESOURCE TO USER1, USER2;
권한이 부여되었습니다.
SQL> SHOW USER
USER은 "SYS"입니다
SQL> CREATE ROLE CROLE;
롤이 생성되었습니다.
SQL> CREATE ROLE MROLE;
롤이 생성되었습니다.
SQL> CONN SCOTT/TIGER
연결되었습니다.
SQL> GRANT SELECT ON EMP TO CROLE;
권한이 부여되었습니다.
SQL> GRANT SELECT ON DEPT TO MROLE;
권한이 부여되었습니다.
SQL> CONN SYS/ORACLE AS SYSDBA
연결되었습니다.
SQL> GRANT CROLE TO USER1;
권한이 부여되었습니다.
SQL> GRANT MROLE TO USER2;
권한이 부여되었습니다.
SQL> CONN USER1/TIGER
연결되었습니다.
SQL> SELECT COUNT(*) FROM SCOTT.EMP;
COUNT(*)
----------
14
SQL> SELECT COUNT(*) FROM SCOTT.DEPT;
SELECT COUNT(*) FROM SCOTT.DEPT
*
1행에 오류:
ORA-00942: 테이블 또는 뷰가 존재하지 않습니다
SQL> CONN USER2/TIGER
연결되었습니다.
SQL> SELECT COUNT(*) FROM SCOTT.EMP;
SELECT COUNT(*) FROM SCOTT.EMP
*
1행에 오류:
ORA-00942: 테이블 또는 뷰가 존재하지 않습니다
SQL> SELECT COUNT(*) FROM SCOTT.DEPT;
COUNT(*)
----------
8
ROLE 을 부여 받으면 ROLE 안에 들어있는 모든 권한을행사할수있다.
SQL> CONN SYS/ORACLE AS SYSDBA
연결되었습니다.
SQL> GRANT CROLE TO MROLE;
권한이 부여되었습니다.
SQL> CONN USER2/TIGER
연결되었습니다.
SQL> SELECT COUNT(*) FROM SCOTT.EMP;
COUNT(*)
----------
14
ROLE 삭제
SQL> DROP ROLE CROLE
SCOTT 도 삭제를 해보자. ㄷㄷㄷ
SQL> CONN SYS/ORACLE AS SYSDBA
연결되었습니다.
SQL> DROP USER SCOTT;
DROP USER SCOTT
*
1행에 오류:
ORA-01922: 'SCOTT'(을)를 삭제하려면 CASCADE를 지정하여야 합니다
SQL> DROP USER SCOTT CASCADE;
사용자가 삭제되었습니다.
SQL> CREATE USER SCOTT
2 IDENTIFIED BY LION;
사용자가 생성되었습니다.
SQL> GRANT CONNECT, RESOURCE TO SCOTT;
권한이 부여되었습니다.
SQL> CONN SCOTT/LION
연결되었습니다.
패스워드 변경
SQL> ALTER USER SCOTT
2 IDENTIFIED BY TIGER;
사용자가 변경되었습니다.
SQL> CONN SCOTT/TIGER
연결되었습니다.
예제 재생성 스크립트
SQL> @C:\ORACLE\ORA92\SQLPLUS\DEMO\DEMOBLD.SQL
Building demonstration tables. Please wait.
Demonstration table build is complete.
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production에서 분리되었습니다.
'Programing > Oracle' 카테고리의 다른 글
Oracle - Instance (0) | 2008.07.29 |
---|---|
Oracle - DBMS의 구조 (0) | 2008.07.29 |
Oracle - SEQUENCE , SYNONYM (0) | 2008.07.29 |
Oracle - INDEX (0) | 2008.07.29 |
Oracle - VIEW (0) | 2008.07.29 |