메뉴 건너뛰기

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파일을 확인해보기시 바랍니


  1. No Image 29Aug
    by
    2016/08/29 Views 8141 

    Oracle에서 중복 조인을 피하기 위한 Update 방법 (MERGE 사용)

  2. Oracle에서 세자리 콤마 찍기

  3. Oracle에서 사용자가 생성한 모든 Table, View를 삭제하는 쿼리 만들기

  4. Oracle에서 ORA-28000: 계정이 잠금되었습니다. - 해결 방법

  5. Oracle에서 Foreign Key가 걸려있는 컬럼값 업데이트(update) 하기

  6. oracle 특수문자 입력시 Substitution Variable 변수치환을 없애는 방법

  7. No Image 29Aug
    by
    2016/08/29 Views 7140 

    Oracle 저장 프로시저 샘플

  8. Oracle 에서 테이블과 리소스의 존재 여부를 알아보는 쿼리

  9. No Image 30Aug
    by
    2016/08/30 Views 8335 

    Oracle 에서 NVL, NVL2 함수 사용하는 예제

  10. No Image 08Dec
    by
    2016/12/08 Views 7023 

    oracle 에서 Index를 이용해서 즉 힌트와 rownum을 이용하여 게시판 작성하기

  11. Oracle 시퀀스 생성, 추가, 삭제

  12. No Image 11Sep
    by
    2016/09/11 Views 8525 

    oracle 구동 방법 및 재부팅 시 oracle 자동 시작 설정 ( /etc/rc.local )

  13. Oracle XDB 리스너 포트 바꾸기

  14. No Image 11Sep
    by 조쉬
    2016/09/11 Views 8013 

    oracle user 관리

  15. Oracle SQL Developer 도구 활용하기 - Part2

  16. Oracle SQL Developer 도구 활용하기 - Part1

  17. No Image 11Sep
    by
    2016/09/11 Views 10650 

    oracle log 보기 - alert, trace

  18. No Image 11Sep
    by
    2016/09/11 Views 7492 

    oracle listener 로그 형식 - oracle 11g 이전 versioin의 형식으로 변경

  19. Oracle DBMS_CRYPTO 사용하기 - 암복호화 하기

  20. Oracle DB 에서 Toad 를 사용하여 Procedure 디버깅 하기

Board Pagination Prev 1 2 3 4 5 6 7 Next
/ 7

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

© k2s0o1d4e0s2i1g5n. All Rights Reserved