Oracle Product User Profile
Version 11.2.0.2
 
Create Profile - Disable Commands
Source -- must be run as SYSTEM

{$ORACLE_HOME}\sqlplus\admin\pupbld.sql
Data Dictionary Objects product_profile
product_user_profile
SQL*Plus commands that can be disabled
COPY EXIT QUIT SPOOL
DECLARE GET RUN START
EDIT HOST SAVE  
EXECUTE PASSWORD SET  
SQL commands that can be disabled
ALTER DELETE NOAUDIT SET ROLE
ANALYZE DROP RENAME SET TRANSACTION
AUDIT GRANT REVOKE TRUNCATE
CONNECT INSERT SELECT UPDATE
CREATE LOCK SET CONSTRAINTS  
To disable commands To disable a SQL or SQL*Plus command for a given user, insert a row containing the user's username in the USERID column, the command name in the ATTRIBUTE column, and DISABLED in the CHAR_VALUE column.

INSERT INTO product_user_profile
VALUES
(<product_name>, <schema_name>, <SQL Command>, NULL, NULL,
'DISABLED', NULL, NULL);
INSERT INTO system.product_user_profile
(product, userid, attribute, scope, numeric_value, char_value, date_value, long_value)
VALUES
('SQL*Plus', 'UWCLASS', 'SELECT', NULL, NULL, 'DISABLED', NULL, NULL);

COMMIT;
To disable a role for all users When you enter "PUBLIC" or "%" for the USERID column, you disable the role for all users.

During login, these table rows are translated into the command

SET ROLE ALL EXCEPT ROLE1, ROLE2
INSERT INTO system.product_user_profile
(product,userid, ...)
VALUES
('SQL*PLUS', PUBLIC, ...)

or

('SQL*PLUS', '%', ...)

COMMIT;
Disable Host Command To prevent shelling out to the operating system
INSERT INTO system.product_user_profile
(product,userid,attribute,scope,numeric_value,char_value)
VALUES
('SQL*Plus', '%', 'HOST', NULL, NULL, 'DISABLED');

COMMIT;
 
Drop Profile - Re-enable Commands
To re-enable commands Delete the row containing the restriction
DELETE FROM product_user_profile WHERE userid = 'UWCLASS';
 
 
Morgan's Library Page Footer
This site is maintained by Dan Morgan. Last Updated: © 2012 Daniel A. Morgan All Rights Reserved