***
-사용자 삭제
-사용자 스페이스 생성
-scott.dmp 파일 복사
-테이블 정보
-(분석하기)
-(업데이트)
-테이블 이동
-권한
-권한 보기
-Role 보기
-Role 에 부여된 정보 보기
-'CONNECT' 에 부여된 Role 정보 보기
-Role 생성
-롤에 권한 부여
-사용자에게 롤 부여
-테이블 영역 권한 주기(EJB 권한 부여)
-다른 사용자에게 권한 부여
--자신이 받은 권한을 다른 사용자에게(with admin option)
다른 사용자에게 권한 부여 가능)하게
-권한을 다시 회수(/as sysdba 에서 권한을 부여한 테이블의 권한을 다시 회수 해도 양도 받은 테이블은 권한이 적용됨)
-롤 삭제
-객체 권한
-다른 사용자 테이블 보기/지우기
-아무(public) 사용자에게 score 권한 부여
-public권한 취소
-객체롤 삭제
-External table
==========================================================
nls_date_format yyyy-mm-dd hh24:mi:ss (레지스트에 등록)
--사용자 삭제
drop user ejb;
create tablespace ejb
datafile 'd:\iedu\ejb.dbf' size 100m;
create temporary tablespace ejbtemp
tempfile 'd:\iedu\ejbtemp.dbf' size 10m;
create user ejb
identified by ejb
default tablespace ejb
temporary tablespace ejbtemp;
grant connect, resource to ejb;
conn ejb/ejb
select * from tab;
=================================================
conn /as sysdba
create user scott
identified by tiger
default tablespace ejb
temporary tablespace ejbtemp;
==============================================
--scott.dmp 파일 복사
--새명령창
set oracle_sid=iedu
imp help=y
imp system/manager file=D:\lecture\oracle\scott.dmp fromuser=scott
========
원래창
select * from tab;
select * from big_emp;
conn ejb/ejb
create table test1(
a number,
b varchar2(20)
);
begin
for z in 1..10 loop
insert into test1 values(z,'aaa');
end loop;
end;
/
commit;
select rowid,a,b from test1;
--테이블의 정보
conn /as sysdba
desc dba_tables;
select owner,TABLE_NAME,TABLESPACE_NAME,pct_free,pct_used,num_rows,chain_cnt from dba_tables
where OWNER='EJB';
re:
OWNER TABLE_NAME
------------------------------ ------------------------------
TABLESPACE_NAME PCT_FREE PCT_USED NUM_ROWS CHAIN_CNT
------------------------------ ---------- ---------- ---------- ----------
EJB TEST1
EJB 10 40
--테이블 정보(분석하기기)
analyze table ejb.test1 compute statistics for table;
re:
테이블이 분석되었습니다.
SQL> select owner,TABLE_NAME,TABLESPACE_NAME,pct_free,pct_used,num_rows,chain_cn
t from dba_tables
2 where OWNER='EJB';
re:
OWNER TABLE_NAME
------------------------------ ------------------------------
TABLESPACE_NAME PCT_FREE PCT_USED NUM_ROWS CHAIN_CNT
------------------------------ ---------- ---------- ---------- ----------
EJB TEST1
EJB 10 40 10 0
conn ejb/ejb
begin
for z in 1..100000 loop
insert into test1 values (z,'aaa');
end loop;
end;
/
commit
conn /as sysdba
select owner,TABLE_NAME,TABLESPACE_NAME,pct_free,pct_used,num_rows,chain_cnt from dba_tables
where OWNER='EJB';
re:
OWNER TABLE_NAME
------------------------------ ------------------------------
TABLESPACE_NAME PCT_FREE PCT_USED NUM_ROWS CHAIN_CNT
------------------------------ ---------- ---------- ---------- ----------
EJB TEST1
EJB 10 40 10 0
SQL> analyze table ejb.test1 compute statistics for table;
테이블이 분석되었습니다.
SQL> select owner,TABLE_NAME,TABLESPACE_NAME,pct_free,pct_used,num_rows,chain_cn
t from dba_tables
2 where OWNER='EJB';
re
OWNER TABLE_NAME
------------------------------ ------------------------------
TABLESPACE_NAME PCT_FREE PCT_USED NUM_ROWS CHAIN_CNT
------------------------------ ---------- ---------- ---------- ----------
EJB TEST1
EJB 10 40 100010 0
---(업데이트)
-update ejb.test1 set b='12345678901234567890';
-analyze table ejb.test1 compute statistics for table;
-select owner,TABLE_NAME,TABLESPACE_NAME,pct_free,pct_used,num_rows,chain_cnt from dba_tables
where OWNER='EJB';
re:
OWNER TABLE_NAME
------------------------------ ------------------------------
TABLESPACE_NAME PCT_FREE PCT_USED NUM_ROWS CHAIN_CNT
------------------------------ ---------- ---------- ---------- ----------
EJB TEST1
EJB 10 40 100010 0
------------------------------------------------------------
--새로운 테이블스페이스 생성
create tablespace expert
datafile 'd:\iedu\expert01.dbf' size 10m;
--테이블 이동
alter table ejb.test1 move tablespace expert;
analyze table ejb.test1 compute statistics for table;
select owner,TABLE_NAME,TABLESPACE_NAME,pct_free,pct_used,num_rows,chain_cnt from dba_tables
where OWNER='EJB';
re:
OWNER TABLE_NAME
------------------------------ ------------------------------
TABLESPACE_NAME PCT_FREE PCT_USED NUM_ROWS CHAIN_CNT
------------------------------ ---------- ---------- ---------- ----------
EJB TEST1
EXPERT 10 40 100010 0
==============================
---권한
create user e1
identified by e1
default tablespace ejb
temporary tablespace ejbtemp;
create user e2
identified by e2
default tablespace ejb
temporary tablespace ejbtemp;
create user e3
identified by e3
default tablespace ejb
temporary tablespace ejbtemp;
=======================================================================================
--권한 보기
select * from system_privilege_map;
--Role 보기
select * from dba_roles;
--Role 에 부여된 정보 보기
select * from role_sys_privs;
--'CONNECT' 에 부여된 Role 정보 보기
select * from role_sys_privs where role='CONNECT';
re:
ROLE PRIVILEGE ADM
------------------------------ ---------------------------------------- ---
CONNECT CREATE VIEW NO
CONNECT CREATE TABLE NO
CONNECT ALTER SESSION NO
CONNECT CREATE CLUSTER NO
CONNECT CREATE SESSION NO
CONNECT CREATE SYNONYM NO
CONNECT CREATE SEQUENCE NO
CONNECT CREATE DATABASE LINK NO
------------------------
--RESOURCE 에 부여된 Role 정보 보기
select * from role_sys_privs where role='RESOURCE';
re:
ROLE PRIVILEGE ADM
------------------------------ ---------------------------------------- ---
RESOURCE CREATE TYPE NO
RESOURCE CREATE TABLE NO
RESOURCE CREATE CLUSTER NO
RESOURCE CREATE TRIGGER NO
RESOURCE CREATE OPERATOR NO
RESOURCE CREATE SEQUENCE NO
RESOURCE CREATE INDEXTYPE NO
RESOURCE CREATE PROCEDURE NO
---------------------------------------------------
--Role 생성
create role ejbrole;
-롤에 권한 부여
grant create session,create table to ejbrole;
-사용자에게 롤 부여
grant ejbrole to e1; --create table 권한 부여
grant ejbrole to e2 with admin option; (다른 사용자에게 권한 부여 가능)하게
conn e1/e1;
conn e2/e2;
conn e3/e3;
re:
ERROR:
ORA-01045: user E3 lacks CREATE SESSION privilege; logon denied
경고: 이제는 ORACLE에 연결되어 있지 않습니다.
conn e1/e1;
create table tt(
a number,
b varchar2(20)
);
re:
*
1행에 오류:
ORA-01950: 테이블 영역 'EJB'에 대한 권한이 없읍
conn /as sysdba
--EJB 권한 부여
alter user e1
quota 10m on ejb;
alter user e2
quota 10m on ejb;
alter user e3
quota 10m on ejb;
conn e1/e1;
create table tt(
a number,
b varchar2(20)
);
-----------------
--다른 사용자에게 권한 부여
grant ejbrole to e3;
re:
*
1행에 오류:
ORA-01932: 롤 'EJBROLE'에 대한 ADMIN 옵션이 허가되지 않았습니다
----부여하기
conn e2/e2
create table tt(
a number,
b varchar2(20)
);
grant ejbrole to e3;
--권한을 다시 회수
conn /as sysdba
revoke ejbrole from e1;
revoke ejbrole from e2;
conn e3/e3
--롤 삭제
conn/as sysdba
drop role ejbrole;
conn e3/e3
--객체 권한
conn /as sysdba
grant connect,resource to e1;
grant connect,resource to e2;
grant connect,resource to e3;
--객체 생성
create role objrole;
conn scott/tiger
select * from tab;
grant select on part to objrole;
grant select,delete on tech to objrole;
--권한 부여
conn/ as sysdba
grant objrole to e1;
grant objrole to e2 with admin option;
--다른 사용자 테이블 보기/지우기
conn e1/e1
select * from scott.part;
delete scott.part; --삭제 안됨
select * from scott.dept;
delect scott.dept; --선택,삭제 가능
select * from scott.dept;
insert into scott.dept values(33.'관리부','부산');
grant objrole to e3;
conn e2/e2
grant objrole to e3;
conn scott/tiger
grant select on score to public; // 아무 사용자에게 score 권한 부여
--사용자에게 권한 부여
conn e2/e2
select * from scott.score;
-public권한 취소
conn scott/tiger
revoke select on score from public;
conn e2/e2
select * from scott.score;
--객체롤 삭제
conn /as sysdba
drop role objrole;
==============================================================================================
==External table
4-19-1.dat
4-19-1.dat 생성 ex) 15. 캔디,미국,1000
conn /as sysdba
grant dba to e1;
conn e1/e1
1. create directory cartoon as 'D:\lecture\oracle\ejb1기';
2. create table cartoon_e(
no number,
cname char(20),
maker char(20),
price number
)
organization external(
type oracle_loader
default directory cartoon
location('4-19-1.dat','4-19-2.dat')
)
reject limit unlimited; --에러시 언로드 되는 레코드 제한
select * from cartoon_e;
insert into cartoon_e
values(11,'aa','bb',200);
select * from cartoon_e;
----------책의 내용 따라하기 333p~339p 까지 ---------------------
(없는 부분 추가)
create user you
identified by you
default tablespace ejb
temporary tablespace ejbtemp;
create user seo
identified by seo
default tablespace ejb
temporary tablespace ejbtemp;
create user kim
identified by kim
default tablespace ejb
temporary tablespace ejbtemp;
create user seo
identified by seo
default tablespace ejb
temporary tablespace ejbtemp;
drop user you;
drop user seo;
'ORACLE' 카테고리의 다른 글
오라클 튜닝//옵티마이저 (0) | 2024.01.17 |
---|---|
오라클 데이터베이스 모드 변경//아카이브 프로세스 활성화//백업 (0) | 2024.01.17 |
오라클 테이블 스페이스 (0) | 2024.01.16 |
오라클 우편번호 만들는 법/제약조건/삭제,수정/데이터 입력 (1) | 2024.01.16 |
오라클 연산/급여계산 (1) | 2024.01.16 |