메뉴 건너뛰기

2016.09.11 20:49

oracle user 관리

조회 수 8014 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

사용자를 생성하거나 변경시에는 반드시 SYSTEM사용자로 접속후 실행해야 합니다.

 

SYSTEM 계정에서 계정생성

 

sql>CREATE USER 아이디 IDENTIFIED BY 패스워드;

-- 아이디와 패스워드로 사용자를 생성합니다.

 

sql>GRANT connect, resource to 아이디;

-- 아이디 사용자에게 접속권한과 모든 권한을 줍니다.

 

※ sql>GRANT dba TO leejunsik;

--leejunsik 사용자에게 dba 권한을 줍니다.

 

SYSTEM 계정에서 계정확인

 

sql>show user;

--현재 계정의 이름을 출력합니다.(sqlplus에서만 실행가능)

 

sql>select user from dual;

--현재 계정의 이름을 출력합니다.(모든 관리툴에서 실행가능)

 

sql>select * from all_users;

-- 현재 oracle서버의 모든 계정을 보여줍니다.(아이디명,사용자아이디,만든날짜_모든계정에

서 실행 가능)

-- 패스워드는 알수 없습니다.

 

sql> select USERNAME,CREATED,DEFAULT_TABLESPACE, TEMPORARY_TABLESPACE

from

dba_users where username not in('SYS','SYSTEM');

 

sql>select username,account_status from dba_users;

--현재 oracle서버의 모든 계정을 보여줍니다.(상세정보출력_SYSTEM계정에서만 실행 가능)

※ ACCOUNT_STATUS 컬럼값으로 해당 계정이 LOCK상태인지 UNLOCK(OPEN)상태인지 알수 있습니다.

 

SYSTEM 계정에서 계정수정(패스워드)

 

sql>alter user leejunsik identified by leejunsik2;

--leejunsik계정의 패스워드를 leejunsik2로 수정합니다

 

SYSTEM 계정에서 계정삭제(세션이 없을때)

 

사용자 계정 삭제는 system계정에서 해야 하며 drop user 계정명으로 삭제명령을
내립니다.하지만 해당 계정의 table이 존재하면 삭제가 불가능하여 모든 table을 삭제한후
계정을 삭제해야 합니다.

sql>drop user leejunsik;

--leejunsik계정을 삭제합니다. 해당 계정에 데이타가 없어야 합니다.

sql>drop user cascade;

--leejunsik계정을 삭제합니다. 해당 계정에 데이타가 있어도 무시하고 삭제

 

SYSTEM 계정에서 계정삭제(세션이 있을때)

 

drop user 사용자계정명; 으로 삭제를 하지만 데이타가 하나라도 있다면
삭제가 안됩니다.그래서 cascade옵션으로 삭제를 합니다.
sql>drop user cascade;

하지만 이때 해당 사용자 계정의 데이타를 사용중일때는 삭제가 안됩니다.
이때는 데이타를 사용중인 사용자세션을 수동으로 삭제해야 합니다.
사용자가 연결되었다고 나오면 아래방법으로 세션을 삭제합니다.

 

1.system계정에서 모든 세션의 정보를 출력합니다.
select sid,serial#,username from v$session;

2.username으로 삭제할 sid와 serial#값을 알아내어 삭제를 합니다.
sql>alter system kill session '18,159';
--18은 sid이며 159는 serial#입니다.

3.모든 세션을 삭제후에 drop user 계정명 cascade;으로 사용자를
삭제합니다.

 

LEEJUN 계정을 만든후 SCOTT계정의 테이블을 그대로 복사하여 LEEJUN 계정으로 복사하기

 

가장 간단히 특정 유저의 테이블들을 복사할 수 있는 방법은 EXP,IMP 유틸을 이용하는 방법이며 아래의 경우는 같은 DB서버에 계정이 있을때만 가능합니다.

 

먼저 LEEJUN이라는 유저를 생성합니다.

>CREATE USER RMAN IDENTIFIED BY LEEJUN;

 

기본권한 GRANT

>GRANT CONNECT,RESOURCE TO LEEJUN;

 

SCOTT유저의 테이블을 EXP받음

>EXP SCOTT/TIGER@SID FILE=TEST.DMP

 

LEEJUN유저에게 IMP

>IMP RMAN/RMAN@SID FILE=TEST.DMP fromuser=scott touser=LEEJUN

 

계정생성후 leejunsik계정으로 접속

 

방법1)

sqlplus을 실행하고 계정입력후 로그인

 

방법2)

로컬db에 접속시

원도우 도스창>sqlplus leejunsik/leejunsik

--로컬db에 접속시 위의 방법은 가능합니다.

원격db에 접속시 잘못된 명령

원도우 도스창>sqlplus leejunsik/leejunsik

--원격db에 접속시 위의 방법은 불가능합니다.

원격db에 접속시 잘된 명령

원도우 도스창>sqlplus leejunsik/leejunsik@SID

--원격DB에 접속시 호스트 문자열(SID) 꼭 써줘야 합니다.

 

방법3)

로컬 db에서 다른 계정에 접속되어있는 상태(sqlplus)에서 connect 접속할아이디/접속할패스워드 명령으로 계정 전환이 가능하지만 원격db에서 다른 계정에 접속(sqlplus)되어있는 상태에서는 계정 전환이 안됩니다. 왜냐하면 호스트 문자열(SID)을 입력해야 하는데 입력이 불가능하기 때문.

 

SQL*PLUS에서 @SID의 의미

 

sqlplus username/password  <-  디폴트로 설정되어 있는 SID로 연결합니다.

sqlplus username/password@sid_name <- sid_name 의 SID로 연결합니다.

 

SQL*PLUS에서 @SID를 붙이고 접속시 아래의 에러가 난다면

 

ORA-12154: TNS:could not resolve service name

 

@ 뒤에 붙는 것은 tnsnames.ora 에 정의 되어 있는 접속 주소 입니다.
위 같이 에러가 나는 것은 tnsnames.ora 파일에 정의를 하지 않았거나 다른 이름으로 정의 해놓았기 때문일겁니다. $ORACLE_HOME/network/admin 아래에 보면 tnsnames.ora파일을 확인해보기시 바랍니


List of Articles
번호 제목 날짜 조회 수
61 IMP-00010: 엑스포트 파일이 유효하지 않고, 헤더가 검증에 실패했습니다 file 2016.12.08 8810
60 계층형 쿼리의 응용 - 답변형 계시판 file 2016.12.08 8752
59 엑셀데이타를 DB 에 저장. Excel => oracle db restore 2016.12.08 8744
58 오라클 암호 초기화 및 사용자 생성 2016.12.08 8648
57 rownum 으로 범위지정을 해주고 싶을 때 2016.08.30 8623
56 오라클] 숫자 체크 방법 (IS_NUMBER, IS_NUMERIC) file 2017.01.20 8620
55 RMAN 을 이용한 오라클 백업 2016.12.08 8582
54 [Oracle 12] ORA-01950: 테이블스페이스 'USERS'에 대한 권한이 없습니다. file 2016.12.08 8580
53 [Oracle] 테이블 스페이스 및 사용자 계정 생성 방법 2016.12.08 8572
52 계층형 쿼리의 응용 - 달력만들기 file 2016.12.08 8528
51 oracle 구동 방법 및 재부팅 시 oracle 자동 시작 설정 ( /etc/rc.local ) 2016.09.11 8526
50 오라클 계정 lock 해제 2016.12.08 8444
49 오라클 해당 월 의 맨첫날 ~ 마지막 일 가져 오는 쿼리 2016.12.08 8417
48 WITH문으로 쿼리를 임시테이블이나 View처럼 사용하자. 2016.08.29 8379
47 관리자( SYSTEM, SYS) 계정 비밀번호를 잊어버렸을때.. file 2016.12.08 8336
46 Oracle 에서 NVL, NVL2 함수 사용하는 예제 2016.08.30 8335
45 오늘을 기준으로 해당주(week)의 모든 일자조회 2017.01.20 8329
44 오라클 ORDER BY : 정렬 2017.01.20 8241
43 TOAD에서 Explain Plan 보기 2016.09.12 8229
42 Oracle 시퀀스 생성, 추가, 삭제 file 2016.08.30 8151
Board Pagination Prev 1 2 3 4 5 6 7 Next
/ 7

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved