메뉴 건너뛰기

2016.09.11 20:49

oracle user 관리

조회 수 8066 추천 수 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
번호 제목 날짜 조회 수
41 스키마 조회 쿼리 모음 2016.09.12 10100
» oracle user 관리 2016.09.11 8066
39 oracle db 백업(full) 2016.09.11 9729
38 Oracle DB 언어셋 설정 2016.09.11 8103
37 linux 오라클 리스너 설정(오라클 원격접속) 2016.09.11 25459
36 linux oracle 서비스 시작 및 확인 ( 간단 ) 2016.09.11 12343
35 oracle log 보기 - alert, trace 2016.09.11 10704
34 oracle 10g - log, trc 관리 정책 스크립트 2016.09.11 10157
33 oracle listener 로그 형식 - oracle 11g 이전 versioin의 형식으로 변경 2016.09.11 7540
32 oracle 구동 방법 및 재부팅 시 oracle 자동 시작 설정 ( /etc/rc.local ) 2016.09.11 8585
31 Oracle DB 에서 Toad 를 사용하여 Procedure 디버깅 하기 file 2016.08.30 11527
30 오라클(Oracle) SUBSTR 함수로 문자열을 다양하게 자르는 방법 file 2016.08.30 7879
29 오라클(Oracle) 에서 varchar 와 varchar2 의 차이점은 무엇인가 file 2016.08.30 8078
28 오라클 12c (Oracle) 에서 테스트를 위해 샘플 스키마 설치하기 file 2016.08.30 8965
27 오라클 (Oracle) 쿼리 구간별 시간 체크 하기 file 2016.08.30 8023
26 오라클 (Oracle) 11g 를 위한 토드(Toad) 무료 버전 다운받기 file 2016.08.30 16110
25 oracle 특수문자 입력시 Substitution Variable 변수치환을 없애는 방법 file 2016.08.30 9068
24 Oracle 에서 테이블과 리소스의 존재 여부를 알아보는 쿼리 file 2016.08.30 9012
23 Oracle XDB 리스너 포트 바꾸기 file 2016.08.30 7981
22 Toad 에서 생성한 테이블의 컬럼위치를 변경하고 싶을 때 Rebuild Table 사용 file 2016.08.30 7652
Board Pagination Prev 1 2 3 4 5 6 7 Next
/ 7

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

© k2s0o1d4e0s2i1g5n. All Rights Reserved