내맘대로긍정이 알려주는
Oracle 23ai 신기능
무료 세미나 발표자료
운영을 하다보면 이런 메세지를 가끔 보게 된다.
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
'ORACLE > Trouble Shooting' 카테고리의 다른 글
ORA-00904 invalid identifier (0) | 2018.02.20 |
---|---|
ORA-30009: Not enough memory for CONNECT BY operation (0) | 2018.02.20 |
ORA-02097, ORA-00439 에러 발생 시 (0) | 2018.02.06 |
ORA-00922: missing or invalid option 조치 (0) | 2017.07.17 |
sh: /app/oracle/product/11.2.0/db_1/bin/clsecho: No such file or directory (0) | 2017.05.31 |