Oracle 계정 생성 및 권한 그리고 패스워드 변경 방법에 대하여 알아보겠습니다.
1. 계정 생성 및 제거
> ./sqlplus / as sysdba → 오라클로 접속하는 방법입니다. |
* 오라클에서는 관리자 계정으로 sys와 system 계정이 있습니다. sys 계정은 super user 이며,
system은 sys와 권한이 같으나 database 생성권한이 없습니다. 사용자 계정을 추가하거나 databases를 새로 만들 때는 sys 계정으로 접속해야 합니다.
위 명령어는 sys 관리자 계정으로 접속하기 위한 명령어 입니다.
> alter session set “_ORACLE_SCRIPT”=true; → 12c 버전부터 C##으로 계정이름을 지정하도록 바뀌었다고 합니다. 위 명령어를 입력하지 않고 계정생성을 하게되면 구문이 틀리다고 에러 메세지가 나오기 떄문에 반드시 위 명령어를 입력 후 계정 생성을 합니다. |
> CREATE USER 계정명 IDENTIFIED BY 비밀번호; → 소문자로 입력해도 문제 없으며, 원하는 계정명과 비밀번호를 입력하여 계정을 생성합니다. |
> grant create session to 계정명; → 생성한 유저에 로그인 권한을 생성해 줍니다. |
일반 계정으로 접속 시 문제없이 접속되는 점 확인 할 수 있습니다.
계정을 생성하였으면 삭제하는 방법에 대하여 알아보겠습니다.
> DROP USER 계정명; 또는 > DROP USER 계정명 CASCADE; → 위 명령어로 삭제가 가능합니다. CASCADE는 USER가 객체를 소유하고 있을 경우에 꼭 사용해야하는 것으로 사용하게 되면 사용자 이름과 관련된 모든 데이터베이스 스키마가 삭제되고 물리적으로도 삭제됩니다. |
> drop user 계정명 cascade; → 계정 삭제시 다음과 같은 오류가 발생하면 alter session set “_ORACLE_SCRIPT”=true; 명령어를 입력 후 삭제를 시도합니다. |
> alter session set “_ORACLE_SCRIPT”=true; > drop user 계정명 cascade; → 정상적으로 삭제되는 점 확인할 수 있습니다. |
2. 권한 부여 및 제거
권한 부여 전 옵션에 대하여 알아보고 설정해보겠습니다.
CREATE USER | 데이터 베이스 유저 생성 권한 |
SELECT ANY TABLE | 모든 유저의 테이블 조회 권한 |
CREATE ANY TABLE | 모든 유저의 테이블 생성 권한 |
CREATE SESSION | 데이터베이스 접속 권한 |
CREATE TABLE | 테이블 생성 권한 |
CREATE VIEW | 뷰 생성 권한 |
CREATE PROCED USER | 프로시저 생성 권한 |
CREATE SEQUENCE | 시퀀스 생성 권한 |
SYSDBA | 데이터베이스를 관리하는 최고 권한 |
SYSOPER | 데이터베이스를 관리하는 권한 |
몇개의 권한 설정 테스트를 해보겠습니다.
> GRANT 권한명1, 권한명2 TO 계정명; → 권한 설정 명령어입니다. |
> grant create table to 계정명; → 테이블 생성권한을 주었습니다. |
그 외에 다른 권한 설정 테스트를 해보았고 문제없이 설정 되는 점 확인하였습니다.
권한을 부여했으면, 반대로 권한을 제거하는 방법도 알아보겠습니다.
> REVOKE 권한명1,권한명2 FROM 계정; → 권한 제거 명령어입니다. |
> revoke create user,select any table from 계정명; → 정상적으로 권한이 제거된 점 확인할 수 있습니다. |
* 추가적으로 권한 설정 중 sysdba와 sysoper의 권한에서 수행할 수 있는 작업을 알아보겠습니다.
SYSDBA | – 데이터 베이스 시작, 종료 및 상태 전환 – 테이블 스페이스 및 컨트롤 파일 백업 – 데이터베이스 아카이브 또는 노아카이브 로그 모드 전환 – 파라메터 파일 생성 – 데이터베이스 완전 복구 – 접속 세션 제한 |
SYSOPER | – SYSOPER가 소유한 모든 권한 – 데이터베이스 생성 및 삭제 – 데이터베이스 불완전 복구 |
* 오라클에는 오라클 내부 system(OS system과는 다른 개념의 oracle DB의 system을 말함)권한과 Object 권한으로 나뉘어 집니다.
이 부분은 참고만 하시면 됩니다.
Object 권한 : 해당 오브젝트에 특정 SQL을 수행할 수 있게 해주는 권한입니다.
오브젝트의 소유자는 해당 오브젝트에 대한 모든 권한을 가지게 되며, 자신의 오브젝트에 대한 특정 권한을 다른 유저에게 부여할 수 있습니다.
아래는 테이블 및 뷰에 부여할 수 있는 오브젝트 권한입니다.
오브젝트 권한 종류 | 테이블 | 뷰 |
ALTER | O | X |
DELETE | O | O |
INSERT | O | O |
UPDATE | O | O |
INDEX | O | X |
SELECT | O | O |
– ALTER는 뷰에서 수행할 수 없으며 원한다면 재생성 수행을 해야하고 INDEX는 뷰에 생성할 수 없습니다.
3. 패스워드 변경
> ALTER USER 계정명 IDENTIFED BY 변경할 비밀번호; → 패스워드 변경하는 명령어 입니다. |
> alter user 계정명 identifed by 변경할 비밀번호; → 패스워드 변경이 완료되었습니다. 재접속 시 잘 변경되었나 확인해봅니다. |
정상 접속되는 점 확인하였습니다.
* 패스워드를 잊어버렸을 경우 패스워드를 변경하는 방법은 간단합니다.
오라클 접속 시 sys 계정으로 접속하게 되면 패스워드를 입력하지 않고 접속이 가능합니다.
* sys 계정 접속 시
* 일반 접속 시
두 접속 방법을 보면 sys 계정으로 접속 시 패스워드 입력이 필요없는 점 확인 할 수 있습니다.
오라클 접속이 완료되면 패스워드 변경명령어를 그대로 입력하면 변경 가능합니다.
'linux > DB' 카테고리의 다른 글
mysql 락 테이블 확인 (0) | 2021.06.04 |
---|---|
mysql 최적화 하기 (0) | 2021.06.04 |
무중단 리플리케이션 (0) | 2021.05.25 |
mysql DB & table 별 용량 체크 (0) | 2021.05.18 |
mysql 외부 접근 및 된 권한 확인 (0) | 2021.05.11 |