사용자 생성
사용자를 생성하는 구문은 다음과 같다.
CREATE USER USER_NAME IDENTIFIED BY PASSWORD
사용자 삭제
사용자를 삭제하는 구문은 다음과 같다. SYS 사용자는 삭제할 수 없으며, 삭제 대상 사용자가 이미 생성한 테이블이 있을 경우에는 에러를 나타낸다.
DROP USER USER_NAME
사용자 비밀번호 변경
사용자는 아래의 구문을 통해 비밀번호를 변경할 수 있다.
ALTER USER USER_NAME IDENTIFIED BY PASSWORD
사용자 재접속
사용자는 응용 프로그램을 종료하지 않고, 다음의 구문을 통해 다른 사용자로 재접속할 수 있다.
CONNECT USER_NAME/PASSWORD;
사용자 사용 예
############################################3 # Connect SYS ############################################3 Create user demo identified by 'demo'; drop user demo; create user demo1 identified by 'demo1'; create user demo2 identified by 'demo2'; alter user demo2 identified by 'demo22'; create table demo1_table (id integer); create bitmap index demo1_table_index1 on demo1_table(id); insert into demo1_table values(99991); insert into demo1_table values(99992); insert into demo1_table values(99993); select * from demo1_table; #Error drop user SYS; ############################################ # Connect DEMO1 ############################################ connect demo1/demo1; #Error alter user demo2 identified by 'demo22'; alter user demo1 identified by demo11; connect demo2/demo22; #Error: wrong password connect demo1/demo11234; # Correct password connect demo1/demo11; create table demo1_table (id integer); create bitmap index demo1_table_index1 on demo1_table(id); insert into demo1_table values(1); insert into demo1_table values(2); insert into demo1_table values(3); select * from demo1_table; select * from demo1.demo1_table; ############################################ # Connect SYS again ############################################ connect SYS/MANAGER; select * from demo1_table; select * from demo1.demo1_table; #Error drop user demo1; connect demo1/demo11; drop table demo1_table; connect SYS/MANAGER; drop user demo1;
수행 결과는 다음과 같다.
############################################ # Connect SYS : SYS 계정으로 접속함. ############################################ create user demo identified by 'demo'; Created successfully. Mach> drop user demo; Dropped successfully. Mach> create user demo1 identified by 'demo1'; Created successfully. Mach> create user demo2 identified by 'demo2'; Created successfully. Mach> alter user demo2 identified by 'demo22'; Altered successfully. Mach> create table demo1_table (id integer); Created successfully. Mach> create bitmap index demo1_table_index1 on demo1_table(id); Created successfully. Mach> insert into demo1_table values(99991); 1 row(s) inserted. Mach> insert into demo1_table values(99992); 1 row(s) inserted. Mach> insert into demo1_table values(99993); 1 row(s) inserted. Mach> select * from demo1_table; ID -------------- 99993 99992 99991 [3] row(s) selected. Mach> #Error: 자기 자신을 Drop 할 수 없음. drop user SYS; [ERR-02083 : Drop user error. You cannot drop yourself(SYS).] Mach> ############################################ # Connect DEMO1 ############################################ connect demo1/demo1; Connected successfully. Mach> #Error: 일반 유저는 다른 사용자의 비밀번호를 바꿀 수 없다. alter user demo2 identified by 'demo22'; [ERR-02085 : ALTER user error. The user(DEMO2) does not have ALTER privileges.] Mach> alter user demo1 identified by demo11; Altered successfully. Mach> connect demo2/demo22; Connected successfully. Mach> #Error: wrong password co``````````````nnect demo1/demo11234; [ERR-02081 : User authentication error. Invalid password (DEMO11234).] Mach> # Correct password connect demo1/demo11; Connected successfully. Mach> create table demo1_table (id integer); Created successfully. Mach> create bitmap index demo1_table_index1 on demo1_table(id); Created successfully. Mach> insert into demo1_table values(1); 1 row(s) inserted. Mach> insert into demo1_table values(2); 1 row(s) inserted. Mach> insert into demo1_table values(3); 1 row(s) inserted. Mach> select * from demo1_table; ID -------------- 3 2 1 [3] row(s) selected. select * from demo1.demo1_table; ID -------------- 3 2 1 [3] row(s) selected. Mach> ############################################ # Connect SYS again ############################################ connect SYS/MANAGER; Connected successfully. Mach> select * from demo1_table; ID -------------- 99993 99992 99991 [3] row(s) selected. Mach> select * from demo1.demo1_table; ID -------------- 3 2 1 [3] row(s) selected. Mach> #Error: demo1 유저에 속한 테이블이 존재함. drop user demo1; [ERR-02084 : DROP user error. The user's tables still exist. Drop those tables first.] Mach> connect demo1/demo11; Connected successfully. Mach> drop table demo1_table; Dropped successfully. Mach> connect SYS/MANAGER; Connected successfully. Mach> drop user demo1; Dropped successfully. Mach>