使用product_user_profile来实现用户权限的设定
来源:互联网 发布:淘宝提前收款疯狂扣费 编辑:程序博客网 时间:2024/06/05 09:42
使用product_user_profile来实现用户权限的设定
Author:Kamus
Mail:kamus@itpub.net
Date:2004-1
我们有时候在以普通用户登录SQL*Plus的时候,会碰到下面的错误提示:
Error accessing product_user_profile
Warning: product user profile information not loaded!
You may need to run PUPBLD.SQL as SYSTEM
其实在实际意义上这只是一个警告而已,并不是真正的错误,遇到这个提示,并不会影响我们正常使用SQL*Plus,也不会对数据库功能产生影响。
如果数据库是使用dbca创建的那么不用担心这个问题,通常是我们手动创建数据库的情况下,忘了执行一些脚本才导致出现这样的警告。product_user_profile其实有很强大的功能,这是SYSTEM模式下的一个表,在此表中存在的数据可以让客户端程序登入的时候检查是否在命令的执行上有什么限制。基本上我们是以它来限制SQL*Plus这个客户端程序(目前好像也只有这个程序才会去自动检查这张表:D)
如果不想看到这个警告,作如下操作:
以SYSTEM用户登入SQL*Plus,然后执行PUPBLD.SQL,这个文件通常在$ORACLE_HOME/sqlplus/admin目录中。
SQL> @$ORACLE_HOME/sqlplus/admin/pupbld.sql
执行完毕以后,可以desc product_user_profile来验证一下改表已经创建,并且熟悉一下表的结构。
以上不是这篇小文章的重点,下面我们要利用这张表来限制SCOTT用户不能执行DROP命令,即使SCOTT用户拥有DROP TABLE的权限。
SQL> insert into product_user_profile (
2 product, userid, attribute, char_value)
3 values (
4 'SQL*Plus','SCOT%','DROP','DISABLED');
1 row inserted
Executed in 0.01 seconds
SQL> commit;
Commit complete
Executed in 0 seconds
然后退出SYSTEM用户,用SCOTT用户登录,作个测试:
SQL> create table t_test_profile(
2 id number);
Table created.
Elapsed: 00:00:00.10
SQL> drop table t_test_profle;
SP2-0544: invalid command: drop
这就是product_user_profile的作用,回顾一下:
1。如果我们把DROP改成CREATE或者UPDATE那么就对用户禁止了这些命令。
2。从上面的insert语句,我们可以看到对于用户的限制支持通配符,所有以SCOT开头的用户都不能执行指定的命令。
3。修改了product_user_profile内容,用户必须重新登录SQL*Plus,修改才会生效,也就是只有在登录的时候,SQL*Plus才会检查一遍product_user_profile表中的内容。
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
- 使用product_user_profile来实现用户权限的设定
- 使用product_user_profile来实现用户权限的设定
- 使用product_user_profile来实现用户权限的设定
- 一种简单方便的用户权限管理方法--使用菜单来管理用户权限
- 一种简单方便的用户权限管理方法--使用菜单来管理用户权限(下)
- Android 中使用偏好设定的实现
- mongodb 用户权限设定
- Oracle PUP(PRODUCT_USER_PROFILE)配置和使用
- Test2@关于用户权限设定及更改的练习
- struts2 使用拦截器 实现用户权限的验证
- 一种简单方便的用户权限管理方法--使用菜单来管理用户
- TCPD 与使用 IPFWADM 来设定防火墙
- 如何使用sudo来允许普通用户使用超级用户权限
- 如何使用sudo来允许普通用户使用超级用户权限
- 如何使用sudo来允许普通用户使用超级用户权限
- 利用mac地址来验证用户权限实现问题
- 函数产生的值来设定条件
- setStyleSheet来设定窗口部件的样式
- 生成交叉表的简单通用存储过程
- 长命百岁和死而复生
- 如何将EXP出来的数据IMP进不同的表空间
- OracleDBA讲座笔记2--- oracle运行环境准备
- 介绍Matisse--专为.NET的后关系型数据库part 1
- 使用product_user_profile来实现用户权限的设定
- docmd.runsql 语句执行的操作查询如何回滚?
- 怎样将Excel中的数据导入到SQL Server 2000数据库中
- NULL及DUAL详解
- 查看和监控数据库
- 建立数据库链接
- 位图菜单的制作
- 快速转移数据的方法
- 使用sql*loader进行数据导入