使用product_user_profile来实现用户权限的设定
【相关文章:Java、XML与数据库编程实践(一)】author:kamus 【扩展阅读:Java数据库连接池技术】
【扩展信息:VB.NET特性】mail:kamus@itpub.netdate: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 ( ... 下一页