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安全性
本文介绍了PRODUCT_USER_PROFILE表,DBA可用其限制用户在SQL*Plus环境对SQL等命令的访问,启动时读取记录并维护限制,修改下次登录生效。还说明了创建PUP表的方法、表结构,以及可禁用的SQL*Plus、SQL和PL/SQL命令,同时提及创建和控制角色、iSQLPlus安全性等内容。
1397

被折叠的 条评论
为什么被折叠?



