USER의 생성
CREATE USER C##TEST DB IDENTIFIED BY 1234;
위 코드를 사용하여 USER를 생성해준다. 이때 USER NAME인 TEST앞에는 꼭 C##을 입력해줘야 한다. (프로그램 버전의 차이) 그리고 앞으로 해당 USER로 접속할 때마다 사용자명에 C## 을 붙여서 입력해야 한다. 여기서 C##TEST가 사용자명, 비밀번호가 1234이다.
USER에 권한 부여하기
CONN C##TEST DB/1234
를 입력했을 때 오류가 발생하지 않는다면 그대로 사용하면 된다. 하지만 가끔 권한이 없다는 오류가 발생하는 경우가 있다. 그럴 경우에 우리는 DB에 접근할 수 있도록 권한을 부여해줄 필요가 있다.
CONN SYS/MANAGER AS SYSDBA
우선 위 코드를 통해서 DBA ROLE을 가지고 있는 SYSDBA로 접속해준다.
CREATE USER C##TEST IDENTIFIED BY 1234;
그리고 해당 코드를 통해서 USER를 다시 생성해주고
GRANT connect, resource TO TEST;
를 입력하여 해당 USER에 권한을 부여해준다.
CONN C##TEST DB/1234;
그리고 위 코드를 통해 해당 사용자로 연결해주면 된다.
추가적으로
COMMIT;
를 입력해주면 '커밋이 완료되었습니다'라는 문장과 함께 이제까지의 내용을 안전하게 적용한채로 종료할 수 있다.
* 해당 작업을 마친 후, SQLPLUS에 새로 접속할 때 사용자명은 입력되고 비밀번호는 입력되지 않는 것처럼 뜨는데 사실 보이지 않을 뿐이지 입력은 되고 있는 것이기 때문에 내가 입력 중인 것이 보인다고 당황하지 말고 그대로 계속 입력해준 후에 ENTER를 눌러주면 해당 계정으로 접속할 수 있다.
사용자 명 : C##YUN
비밀번호 : (입력은 했지만 아무것도 뜨지 않음)
즉, 위와 같은 상태로 ENTER를 누르면 되는 것이다. 그러면 언제 마지막으로 접속하였는지의 정보와 함께 접속이 완료된다.
USER의 변경 (비밀번호 변경)
: ALTER USER는 USER를 변경하겠다는 의미이다.
변경하기 위해서는 권한이 있는 계정으로 접속해야 하고 그 권한이 있는 계정이 바로 SYSDBA이다.
CONN SYS/MANAGER AS SYSDBA;
를 입력하여 SYS 계정으로 접속해준다.
ALTER USER C##TEST IDENTIFIED BY LION;
라고 입력해주면 USER C##TEST의 비밀번호가 1234에서 LION으로 변경된다. 이렇게 되면 다음부터 접속할 때 비밀번호를 LION으로 입력해 줘야 한다. 물론 ‘사용자가 변경되었습니다.’라는 문장이 뜨면 정상적으로 적용된 것이고 그렇지 않으면 다시 입력해줘야 한다.
CONN C##TEST/LION
을 입력하여 ‘접속되었습니다.’라는 문장을 출력함으로써 C##TEST의 비밀번호가 변경된 것을 확인할 수 있다.
USER 정보의 확인
CONN SYS/MANAGER AS SYSDBA
로 접속해줘야 한다. ‘연결되었습니다’라는 알림이 뜨면
SELECT USERNAME, DETAULT_TABLESPACE, TEMPORARY_TABLESPACE, FROM DBA_USERS;
를 입력하게 되면 유저와 함께 테이블 스페이스에 대한 정보가 화면에 뜬다. 여기서 SELECT 뒤에는 자신이 보고싶은 내용에 대해서 선택한 것이기 때문에 원하는 정보가 어떤 것인지에 대해서 선택해서 적으면 되고 꼭 똑같이 적을 필요는 없다. 그리고 그것들은 소문자로 적어줘야 한다.
USER 삭제
DROP USER USER_NAME CASCADE
를 입력하여 삭제할 수 있다. CASCADE를 사용하게 되면 사용자 이름과 관련된 모든 데이터베이스 스키마가 데이터 사전으로부터 삭제되며 모든 스키마 객체들 또한 물리적으로 삭제된다.
SELECT USERNAME, DEFAULT_TABLESPACE, TEMPORARY_TABLESPACE FROM DBA_USER;
를 다시 입력하게 되면 DROP했던 USER에 대한 정보가 삭제된 것을 확인할 수 있다.
※ 주의할 점
: 연습할 때는 SYSDBA를 사용하지 말 것.
시스템 권한
특정 타입의 SQL문을 실행하거나 데이터 베이스나 객체에 접근할 수 있는 권리를 말한다.
권한의 부여
해당 코드를 통해서 C##TEST 사용자에 사용자를 생성, 수정, 삭제할 수 있는 권한을 부여한다.
해당 코드를 사용하여 사용자 C##TEST에 EMP테이블에 대해 SELECT, INSERT할 수 있는 권한을 부여해 주었다. 이렇게 되면 사용자 C##TEST로 접속하였을 때 EMP테이블에 대해 SELECT, INSERT를 할 수 있고 이 사용자도 다른 USER에게 그 권한을 부여할 수 있다. 물론 C##TEST는 SELECT와 INSERT에 대한 권한만 가지고 있기 때문에 그것에 대한 권한만 다른 USER에게 줄 수 있고 다른 권한에 대해서 접근하거나 넘겨줄 수 있는 권한은 가지고 있지 않다. 다른 권한을 넘겨주고 싶다면 SYSDBA 계정으로 접속하여야 한다.
을 입력해주면 내가 OLACEL에서 만들었던 테이블에 대한 정보를 SQLPLUS에서 확인 할 수 있다. 테이블 정보와 함께 마지막으로 ‘219행이 선택되었습니다’ 와 같은 문장이 출력되면 완료된 것이다. (숫자는 테이블마다 다름) TABLENAME은 내가 접근하고 싶은 테이블의 이름을 적으면 된다.
를 입력하면 EMAIL에 대하여 할 수 있다. 근데 이전에 GRANT를 통해서 접근할 수 있도록 권한을 부여해줘야 한다. 해석하면 C##TEST 계정으로 CONTACTS 테이블의 EMAIL 컬럼의 정보를 가져오는 것이다.