메뉴 건너뛰기

2016.09.11 20:49

oracle user 관리

조회 수 8013 추천 수 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 쿼리 파싱 시간 측정 - query parsing time 2016.12.08 7704
60 SQL 작성을 위한 25가지 원칙 2016.12.08 6908
59 엑셀데이타를 DB 에 저장. Excel => oracle db restore 2016.12.08 8744
58 오라클 웹로직 12.1.3 설치 방법 file 2016.09.21 9902
57 오라클 암호를 분실한 경우 접속 방법 2016.09.21 7274
56 자동증가 SEQUENCE 생성 2016.09.12 7249
55 테이블 생성(다중 PK) 2016.09.12 7936
54 PK 수정하기 2016.09.12 7069
53 초 이하 단위 시간 얻어오기 2016.09.12 7906
52 V$SESSION 테이블 활용 2016.09.12 8119
51 Database link, Synonym How to 2016.09.12 7500
50 아카이브 백업 / 복구 2016.09.12 6968
49 cron을 이용한 Oracle 백업 2016.09.12 8045
48 시퀀스 초기화 프로시저 2016.09.12 8924
47 TOAD에서 Explain Plan 보기 2016.09.12 8228
46 Create SYNONYM 2016.09.12 7407
45 DB Link How-To 2016.09.12 7015
44 다른 버전의 오라클 import, export 하기 file 2016.09.12 9475
43 제로보드 reg_date 필드 date 형으로 변환하기 2016.09.12 7168
42 오라클 인스턴스 클라이언트(oracle instant client) 2016.09.12 10980
Board Pagination Prev 1 2 3 4 5 6 7 Next
/ 7

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

© k2s0o1d4e0s2i1g5n. All Rights Reserved