오라클 계정 권한 복사 - olakeul gyejeong gwonhan bogsa

SYS 계정으로 접속이 되어있어야 계정생성, 권한부여, 삭제 등이 가능하므로 SYS 계정으로 접속하자.

DEFAULT 로 설정되어있는 SYS 계정은 아래와 같이 접속한다.

SQL> connect sys/nds0102$ as sysdba
Connected.

이제 새 계정을 추가하여 보자.

CREATE USER 새계정이름 IDENTIFIED BY 비밀번호;

SQL> create user user_name identified by user_password;
User created.

새로 만든 계정으로 접속을 시도하면 아래와 같이 오류가난다.

권한이 부여되지 않았기 때문이다.

SQL> conn user_name/user_password;
ERROR:
ORA-01045: user USER_NAME lacks CREATE SESSION privilege; logon denied

그럼 이제 새로 추가한 계정에 권한을 생성해주자.

GRANT 부여할권한 TO 사용자계정;

(나는 모든 권한을 주었다)

SQL> grant connect, dba, resource to user_name;
Grant succeeded.

이제 추가한 계정으로 다시 접속해보면 아래와 같이 접속이 성공한것을 알 수 있다.

SQL> conn user_name/user_password;
Connected.

만약 부여한 권한을 취소(삭제)하려면 아래와 같이 입력하면 된다.

REVOKE 취소할권한 FROM 사용자계정;

(권한을 취소할때도 SYS계정으로 다시 접속해 주어야한다.)

SQL> REVOKE CONNECT,DBA,RESOURCE FROM USER_NAME;
Revoke succeeded.

그리고 기존에 설정했던 PASSWORD를 변경하고 싶을때는 아래와 같이 작성하면된다.

ALTER USER 사용자계정 IDENTIFIED BY 변경할 비밀번호;

SQL> ALTER USER USER_NAME IDENTIFIED BY PASSWORD1;
User altered.

이제 변경한 비밀번호로 다시 접속해보면 아래와 같이 잘 접속되는것을 확인할 수 있다.

SQL> CONN USER_NAME/PASSWORD1;
Connected.

마지막으로 계정삭제를 해보자.

계정삭제는 아래와 같이 입력하면 된다.

DROP USER 사용자계정 CASCADE;

(삭제할 사용자계정으로 테이블이 생성되어 있는등 객체가 존재한다면, CASCADE를 적어주어야 전부 제거가 된다.)

SQL> DROP USER USER_NAME CASCADE;
User dropped.

만약 계정삭제를 했는데 아래와 같은 에러가 뜬다면,

삭제할 계정으로 접속되어 있다는 메세지 이므로 SYS 계정으로 접속한뒤 계정 삭제를 진행해야 된다.

SQL> DROP USER USER_NAME CASCADE;
DROP USER USER_NAME CASCADE
*
ERROR at line 1:
ORA-01940: cannot drop a user that is currently connected

오라클 계정생성, 권한부여

안녕하세요?

오늘은 오라클 명령어 관련하여

계정생성하는 방법과

권한부여 하는 방법에 대해 알아보겠습니다.

자세히 확인하시고 테스트 한번씩 해보시면 금방 습득하실 수 있을것이라 예상합니다.

계정 생성하기

CREATE USER 유저ID IDENTIFIED BY "비밀번호";

계정 비밀번호 변경

ALTER USER "유저ID" IDENTIFIED BY "비밀번호";
 

계정 삭제

DROP USER "유저ID" CASCADE;
  

( CASCADE 명령어로 관련 SCHEMA 를 모두 삭제 가능합니다. )

모든 계정 조회

  SELECT * FROM ALL_USERS;

  SELECT * FROM DBA_USERS;
  

시스템 권한 리스트

CREATE USER : 데이터 베이스 유저 생성 권한

SELECT ANY TABLE : 모든 유저의 테이블 조회 권한

CREATE SESSION : 데이터베이스 접속 권한

CREATE TABLE : 테이블 생성 권한

CREATE VIEW : view 생성 권한

CREATE PROCEDURE USER : procedure, function, package 생성 권한

CREATE SEQUENCE  : sequence 생성 권한

SYSDBA : 데이터베이스 관리 최고 권한

SYSOPER : 데이터베이스 관리 권한

  DML 권한 부여 및 권한 취소

GRANT  DELETE, INSERT, SELECT, UPDATE ON 테이블명 TO 유저ID;

REVOKE DELETE, INSERT, SELECT, UPDATE ON 테이블명 TO 유저ID;

권한부여 관련해서는 아래 포스팅 참고하시면 더 자세한 내용이 있습니다.

오라클 테이블 권한 부여 ( GRANT / REVOKE )

DBA 권한 부여

GRANT CONNECT, RESOURCE, DBA TO 유저ID;

이상으로 oracle 명령어 관련한 내용을 알아봤습니다.

한 주 잘 마무리 하시고 좋은 주말 보내세요^^

서버에서 ORACLE 접속시 (sysdba로 접속)

  su - oracle
  sqlplus '/as sysdba'

계정 / 권한 조회

현재 생성된 계정 확인

SELECT * From DBA_USERS;

SELECT * FROM ALL_USERS;

사용자에게 부여된 시스템 권한 확인

SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE = '사용자명';

사용자에게 부여된 롤(권한 집합) 확인

SELECT * FROM DBA_ROLE_PRIVS WHERE GRANTEE = '사용자명' ;

타 사용자에게 부여한 객체(테이블 등) 권한 확인

SELECT * FROM DBA_TAB_PRIVS WHERE OWNER = '테이블소유자명' ;
  or
SELECT * FROM DBA_TAB_PRIVS WHERE GRANTEE = '권한부여자명' ;

사용자가 소유한 모든 테이블 확인

SELECT 테이블명 FROM USER_TABLES;

계정/ 권한 관리

계정 생성

CREATE USER 계정명 IDENTIFIED BY 비밀번호;

계정 비밀번호 변경

ALTER USER 계정명 IDENTIFIED BY 변경할비밀번호;
  • 변경할 비밀번호는 문자로 시작해야합니다.

계정 권한 할당

시스템 권한목록

스템 권한 종류  내용
 CREATE USER  데이터 베이스 유저 생성 권한
 SELECT ANY TABLE  모든 유저의 테이블 조회 권한
 CREATE ANY TABLE  모든 유저의 테이블 생성 권한
 CREATE SESSION  데이터베이스 접속 권한
 CREATE TABLE  테이블 생성 권한
 CREATE VIEW  뷰 생성 권한
 CREATE PROCED USER  프로시저 생성 권한
 CREATE SEQUENCE  시퀀스 생성 권한
 SYSDBA  데이터베이스를 관리하는 최고 권한
 SYSOPER  데이터베이스를 관리는 권한

REVOKE 권한 제거

REVOKE 권한명 (시스템 명령 또는 SQL 명령) ON 테이블명 FROM 계정;

계정 삭제