PRODUCT_USER_PROFILE 表
DBA可以用此表限制用户在SQL*Plus环境中对SQL,SQL*Plus以及PL/SQL命令的访问。这是SQL*Plus的强制安全性,也就是说,SQL*Plus在启动过程中必须读取相应用户模式中的PRODUCT_USER_PROFILE表。默认其中没有任何记录。用户对PRODUCT_USER_PROFILE表只有SELECT权限。
在SQL*Plus启动时,读取其中的记录并且在用户的整个数据库会话中维护这些限制。对PRODUCT_USER_PROFILE表的修改在用户下次登录SQL*Plus时生效。
当SYSTEM,SYS或者具有SYSDBA,SYSOPER特权的用户连接或登录,SQL*Plus不会读取PRODUCT_USER_PROFILE表中的记录,因此,对这些用户不会应用任何限制。另外,PUP表只应用于本地数据块,如果通过数据库链接访问远程数据库上的对象,那么PUP表不起作用。
创建PUP表
作为SYSTEM用户登录SQL*PLUS执行 @%Oracle_Home%/sqlplus/admin/pupbld.sql (Windows).
SYSTEM用户拥有PUP表的所有权限,其他用户只有SELECT 权限,运行pupbld.sql 脚本时,把SELECT访问权限赋予PUBLIC角色。
PUP表结构
Name | Null? | Type |
PRODUCT | NOT NULL | VARCHAR2(30) |
USERID | VARCHAR2(30) | |
ATTRIBUTE | VARCHAR2(240) | |
SCOPE | VARCHAR2(240) | |
NUMERIC_VALUE | NUMBER(15,2) | |
CHAR_VALUE | VARCHAR2(240) | |
DATE_VALUE | DATE | |
LONG_VALUE | LONG | |
PUP表列的描述
禁用SQL*Plus,SQL和PL/SQL命令
可以禁用下面的SQL*Plus 命令:
COPY HOST SET
EDIT PASSWORD SPOOL
EXECUTE QUIT START
EXIT RUN
GET SAVE
可以禁用下面的SQL命令:
ALTER GRANT SET CONSTRAINTS
ANALYZE INSERT SET ROLE
AUDIT LOCK SET TRANSACTION
CONNECT NOAUDIT TRUNCATE
CREATE RENAME UPDATE
DELETE REVOKE
DROP SELECT
还可以禁用下面的PL/SQL命令:
BEGIN DECLARE
创建和控制角色
用SQLPlus命令禁用命令
iSQLPlus安全性