여태껏 실습을 하시면서 보통 사용해온 계정은 hr 계정아니면 scott 계정 등등 있을텐데요.
이와 같은 계정은 오라클에서 제공하는 샘플 스키마로서 계정에 대한 권한들과 모든 테이블, 데이터들이 미리 구축 되어 있습니다.
이번 글에서는 계정 생성과 시스템 권한에 대해서 알아볼까 합니다.
우선 기존에 존재하던 스키마 계정을 사용할때는 관리자 계정으로 접속후 다음과 같이 해주어야 합니다.
기존의 샘플 스키마들은 락(lock)이 걸려 있기 때문에 위와 같이 바꿔줘야 하는데,
identified by 뒤에 나오는것은 비밀번호를 설정해주는 것입니다. 그러고 나서 계정을 풀어줍니다.
hr이나 scott들과 같이 존재하는 스키마들과는 달리 계정을 새롭게 생성할려면, 계정 생성 권한이 있는 계정으로 접속해야 합니다.
우선 우리가 접속하는 관리자 계정은 시스템에 대한 모든 권한을 가지고 있으므로, 이 계정으로 접속해서 작업하도록 합니다.
sys계정을 접속후 다음과 같이 계정을 생성합니다.
[실행화면]
유저가 만들어졌다는 메시지가 나오면 계정이 생성 된것입니다.
그렇다면 만들어진 계정으로 접속해 볼까요? 다음과 같이 입력합니다.
[실행화면]
위와 같이 에러 메시지가 나오면서 접속이 되질 않는데, 메시지를 보면 CREATE SESSION 권한이 없다고 나옵니다.
이 말은 즉슨, 해당 계정이 CREATE SESSION 권한이 있어야 접속이 가능하다는 뜻입니다. 그래서 로그온이 거부 되었죠.
이 권한은 관리자 권한이기 때문에 sys나 system 계정으로 test 계정에 권한을 부여하여야 합니다.
권한 부여 방법은 다음과 같습니다.
[실행화면]
권한 부여가 성공되었다고 나옵니다. 그렇다면 다시 접속을 해봐야 겠군요?
다시 접속과정을 되풀이 합니다.
[실행화면]
이외에도 다른 권한이 존재하지만 이 정도면 될 듯 합니다.
그리고 사용자 권한은 다음과 같이 제거 가능합니다. 역시 관리자 계정으로 접속합니다.
이와 같은 계정은 오라클에서 제공하는 샘플 스키마로서 계정에 대한 권한들과 모든 테이블, 데이터들이 미리 구축 되어 있습니다.
이번 글에서는 계정 생성과 시스템 권한에 대해서 알아볼까 합니다.
우선 기존에 존재하던 스키마 계정을 사용할때는 관리자 계정으로 접속후 다음과 같이 해주어야 합니다.
SQL> alter user hr identified by hr account unlock;
SQL> alter user scott identified by oracle accoun unlock;
SQL> alter user scott identified by oracle accoun unlock;
기존의 샘플 스키마들은 락(lock)이 걸려 있기 때문에 위와 같이 바꿔줘야 하는데,
identified by 뒤에 나오는것은 비밀번호를 설정해주는 것입니다. 그러고 나서 계정을 풀어줍니다.
hr이나 scott들과 같이 존재하는 스키마들과는 달리 계정을 새롭게 생성할려면, 계정 생성 권한이 있는 계정으로 접속해야 합니다.
우선 우리가 접속하는 관리자 계정은 시스템에 대한 모든 권한을 가지고 있으므로, 이 계정으로 접속해서 작업하도록 합니다.
sys계정을 접속후 다음과 같이 계정을 생성합니다.
SQL> CREATE USER test identified by test;
[실행화면]
유저가 만들어졌다는 메시지가 나오면 계정이 생성 된것입니다.
그렇다면 만들어진 계정으로 접속해 볼까요? 다음과 같이 입력합니다.
SQL> conn test/test
[실행화면]
위와 같이 에러 메시지가 나오면서 접속이 되질 않는데, 메시지를 보면 CREATE SESSION 권한이 없다고 나옵니다.
이 말은 즉슨, 해당 계정이 CREATE SESSION 권한이 있어야 접속이 가능하다는 뜻입니다. 그래서 로그온이 거부 되었죠.
이 권한은 관리자 권한이기 때문에 sys나 system 계정으로 test 계정에 권한을 부여하여야 합니다.
권한 부여 방법은 다음과 같습니다.
SQL> GRANT create session
TO test;
TO test;
[실행화면]
권한 부여가 성공되었다고 나옵니다. 그렇다면 다시 접속을 해봐야 겠군요?
다시 접속과정을 되풀이 합니다.
[실행화면]
접속이 성공했다고 나옵니다. 자, 그럼 이 접속한 계정을 가지고 테이블을 만들어 보도록 하겠습니다.
테이블 생성과 관련해서는 블로그내 다른글 참고 하시면 됩니다.
테이블 생성 관련 글 보기
SQL> CREATE TABLE test.name
(name VARCHAR(10));
(name VARCHAR(10));
[실행화면]
불충분한 권한이라는 메시지와 함께 테이블 생성이 거부 되는군요.
그렇습니다. 여기서 우리가 알 수 있는 것은 계정이 만들어져 있다고 해서 우리가 알고 있는 작업들을 할 수 있는게 아닙니다.
역시나 테이블 생성에 관한 시스템 권한을 주어야 합니다. 다시 관리자 계정으로 접속합니다.
SQL> GRANT create table
TO test;
TO test;
[실행화면]
위를 확인후 test 계정으로 다시 접속합니다. 그리고 나서 테이블을 다시 생성해 봅니다.
[실행화면]
여기서 분명 "어래?" 하시는 분들이 계실겁니다. "계정 권한도 다 줬는데 왜 오류가 나는거지? 더 줘야 하는 권한이 있나?"
네. 줘야합니다. 위의 메시지를 확인 하시면 테이블 스페이스 'USERS'에 권한이 없다고 나오는데요.
이 공간에 공간 할당 권한인 'QUOTA' 권한이 필요합니다. 지금은 이 정도로만 알아둡시다.
자 여기까지가 계정생성과 관련된 시스템 권한 내용 설명입니다.
시스템 권한에는 다음과 같은 것들이 존재합니다.
CREATE USER | 사용자 생성 권한 |
DROP USER | 사용자 삭제 권한 |
CREATE ANY TABLE | 모든 사용자에 대한 테이블 생성 권한 |
SELECT ANY TABLE | 모든 사용자에 대한 테이블 조회 권한 |
ALTER USER | 사용자 옵션 변경 권한(패스워드 제외) |
CREATE SESSION | 접속권한 |
CREATE TABLE | 테이블 생성 권한 |
CREATE SEQUENCE | 시퀀스 생성 권한 |
CREATE VIEW | 뷰 생성 권한 |
CREATE SYNONYM | 시노님 생성 권한 |
CREATE PROCEDURE | 프로시저 생성 권한 |
CREATE TRIGGER | 트리거 생성 권한 |
이외에도 다른 권한이 존재하지만 이 정도면 될 듯 합니다.
그리고 사용자 권한은 다음과 같이 제거 가능합니다. 역시 관리자 계정으로 접속합니다.
SQL> REVOKE create table
FROM test;
FROM test;
[실행화면]
이렇게 권한이 삭제 됩니다. 여기까지가 계정 생성 및 시스템 권한 입니다.
다음글에서는 객체(Object) 권한에 대해서 다루겠습니다.
도움 되셨다면 밑의 추천(손가락 표시)과 댓글 부탁드립니다.
'데이터베이스 > 오라클' 카테고리의 다른 글
[오라클] 오라클의 기동상태(시작과 종료) (0) | 2011.08.08 |
---|---|
[SQL] 객체(Object) 권한 부여/삭제 (0) | 2011.08.08 |
[오라클] 아카이브 로그(Archive Log) (0) | 2011.08.03 |
[오라클] 리두 로그 파일(Redo Log File) -2 (0) | 2011.07.31 |
[오라클] 리두 로그 파일(Redo Log File) -1 (2) | 2011.07.31 |