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 계정;
계정 삭제