프린트 하기


운영을 하다보면 이런 메세지를 가끔 보게 된다.



SYS@orcl> conn scott/tiger

Error accessing PRODUCT_USER_PROFILE

Warning:  Product user profile information not loaded!

You may need to run PUPBLD.SQL as SYSTEM

Connected.


이 때의 조치사항은 @?/sqlplus/admin/pupbld.sql을 

system user로 접속하여 수행하는 것이다.



아래에서는 pupbld.sql의 수행에 의해서 생성되는 object들의 기능은
무엇인지를 간략하게 살펴본다.



* PRODUCT_USER_PROFILE 

1. 개요

grant, revoke SQL문을 이용한 user-level의 보안에 추가하여,
Oracle product들은 PRODUCT_USER_PROFILE table을 이용하여
보안 관리를 할 수 있다.
예를 들어 SQL*Plus는 user가 login하는 시점에 PRODUCT_USER_
PROFILE을 읽어서 해당 session이 특정 명령문을 수행할 수 없도록
제한을 가할 수 있다.(RDBMS가 아닌 SQL*Plus가 제한을 가한다는
점에 유의)

2. Table 생성

unix의 경우 보통 ?/sqlplus/pupbld.sql을 system user로 수행함
으로써 생성된다.
** system user는 PRODUCT_USER_PROFILE에 의한 제한을 받지 않기
때문에 login시 이 table에 access를 하지 않는다. 반면 일반
user가 login시에는 PRODUCT_USER_PROFILE에 access를 한다.
이러한 이유로 PRODUCT_USER_PROFILE이 생성되어 있지 않으면,
system user로 login할 때는 문제가 없으나 일반 user로 login할
때는 warning message가 발생하게 된다.

3. Table 구조

product : product name 예) SQL*Plus
userid : 특정 command의 사용을 제한하고자 하는 user의 username.
wildcard(%)사용가능
attribute : 제한하고자 하는 command, 특정 role의 사용을 제한하려면
ROLES로 set
scope : SQL*Plus에서는 사용하지 않음
numeric_value : SQL*Plus에서는 사용하지 않음
char_value : 제한하려는 것이 command일 경우는 DISABLED로 set,
role일 경우는 role name을 set
date_value : SQL*Plus에서는 사용하지 않음
long_value : SQL*Plus에서는 사용하지 않음


Example
-------
NUMERIC CHAR DATE
PRODUCT USERID ATTRIBUTE SCOPE VALUE VALUE VALUE
--------------------------------------------------------------
SQL*Plus SCOTT HOST DISABLED
SQL*Plus % INSERT DISABLED
SQL*Plus SCOTT ROLES ROLE1

위의 예에 의하면
scott user는 host라는 sqlplus 명령어를 사용할 수 없으며, role1
이라는 role을 사용할 수 없다.
또한, system user를 제외한 모든 user들은 insert SQL문을 사용할
수 없다.

* 모든 유저에게 truncate 를 못하게 하는 방법

SQL> insert into PRODUCT_USER_PROFILE(product,userid,attribute,char_value)
values('SQL*Plus','%','TRUNCATE','DISABLED');

위의 결과

SQL> conn scott/tiger

Connected.


SQL> truncate table emp;
SP2-0544: Command "truncate" disabled in Product User Profile

Reference Document
------------------
SQL*Plus User's Guide and Reference



출처 : http://dbtech.co.kr/bbs/?bo_c=1050&bo_v=449