관리자 권한으로 로그인을 할 수있는 usercreate 롤을 생성 한후 scott 과 test 계정에게 부여하려한다면?
형식 _
create role 생성시킬 롤이름;
실행 결과_
SQL> create role usercreate;
롤이 생성되었습니다.
롤을 생성을 하게되면 최하단에 생성이 되는것을 볼수가 있다.
그리고
예제_
우리는 만들어진 롤에 권한을 넣어준뒤 특정계정(scott, test)에게 권한을 부여한다. 즉 롤을 이용하여 권한을 부여 해보자는 것이다.
형식_
grant 권한종류,,,, to 롤명1, 롤명2,,, => 롤에게 권한을 넣어주는 명령어.
우선 usercreate롤에 유저생성,유저수정 권한을 넣어주었다. 삭제권한은 다소 위험한 부분이기에 별도로 부여하지않았다.
SQL> grant create user,alter user to usercreate;
권한이 부여되었습니다.
혹 권한을 다시 회수 하는 명령어는 grant의 반대 revoke문을 사용하면된다. grant 자리에 revoke를 넣으면 된다.
그리고 아까 만들어놓은 변동성 파일을 이용 usercreate롤에 권한이 들어갔는지 확인해보자
SQL> @c:\webtest\2.db\print\searchrole.txt
rolename의 값을 입력하십시오: usercreate
구 2: where grantee=upper('&rolename')
신 2: where grantee=upper('usercreate')
GRANTEE PRIVILEGE ADM
------------------------------ ---------------------------------------- ---
USERCREATE CREATE USER NO
USERCREATE ALTER USER NO
문제없이 들어간것을 볼수가 있다. 만약 이외의 다른 권한을 추가 하고싶다면 전과 같이 추가하면 된다.
우리의 과정을 중간점검 해보자, 롤생성 --> 롤에 권한 부여 --> 권한이 있는 롤 --> 어떤계정?
이렇게되고 여기까지는 롤에 권한 부여가 완료가 된 상태이다.
다시 본론으로 들어가서 만들어 놓은 롤을 특정 계정에 부여해보자 바로 scott 과 test에게
형식_
grant 권한이 들어있는 롤명,,,, to 계정명1,, 계정명n
실행 결과_
SQL> grant usercreate to scott,test;
권한이 부여되었습니다.
위와 같이 부여가 완료되었고 이제부터 scott과 test 에게 권한이 부여가 되었다. 계정생성과 암호 부여까지 가능한 상태이다. 확실히 권한이 부여가 되었는지 해당 계정으로 로그인하여, imsi 라는 아이디에 t1234 라는 암호를 부여해보자.
SQL> conn scott/tiger
연결되었습니다.
SQL> create user imsi identified by t1234;
사용자가 생성되었습니다.
완료되었고, 간단한 예제를 풀어보자.
미니 예제_
imsi계정의 암호를 imtest로 변경하는 SQL은??
SQL> alter user imsi identified by imtest;
사용자가 변경되었습니다.
내친김에 안될걸 알지만 준적 없는 권한 드랍도 한번 해보자.
SQL> drop user imsi;
drop user imsi
*
1행에 오류:
ORA-01031: 권한이 불충분합니다
이렇게 일일이 작업하고 재차 확인하는것은 프로그래머로써 반드시 해야할 확인 과정이다. 짐작으로만 프로그래밍을 했다간, 추후 많은 코드와 과정속에서 오류를 찾기가 쉽지 않기에 반드시 단계적으로 확인하고 넘어가는 연습을 미리 해야한다.
'Oracle > Role' 카테고리의 다른 글
데이터 베이스_ 오라클 [Role] 삭제 및 권한위임 (0) | 2019.07.04 |
---|---|
데이터 베이스_ 오라클 [Role] 개요 및 확인 (0) | 2019.07.04 |
댓글