|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
对于insert操作,只需要把event_type改成DELETE_ROWS_EVENT;对于delete操作,改成WRITE_ROWS_EVENT用户权限
利用product_user_profile来完成用户权限的设定
Author:Kamus
Mail:kamus@itpub.net
Date:2004-1
我们偶然候在以一般用户登录SQL*Plus的时分,会碰着上面的毛病提醒:
ErroraccessingPRODUCT_USER_PROFILE
Warning:Productuserprofileinformationnotloaded!
YoumayneedtorunPUPBLD.SQLasSYSTEM
实在在实践意义上这只是一个告诫罢了,并非真实的毛病,碰到这个提醒,其实不会影响我们一般利用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
实行终了今后,能够descproduct_user_profile来考证一下改表已创立,而且熟习一下表的布局。
以上不是这篇小文章的重点,上面我们要使用这张表来限定SCOTT用户不克不及实行DROP命令,即便SCOTT用户具有DROPTABLE的权限。
SQL>insertintoproduct_user_profile(
2product,userid,attribute,char_value)
3values(
4SQL*Plus,SCOT%,DROP,DISABLED);
1rowinserted
Executedin0.01seconds
SQL>commit;
Commitcomplete
Executedin0seconds
然前进出SYSTEM用户,用SCOTT用户登录,作个测试:
SQL>createtablet_test_profile(
2idnumber);
Tablecreated.
Elapsed:00:00:00.10
SQL>droptablet_test_profle;
SP2-0544:invalidcommand:drop
这就是product_user_profile的感化,回忆一下:
1。假如我们把DROP改成CREATE大概UPDATE那末就对用户克制了这些命令。
2。从下面的insert语句,我们能够看到关于用户的限定撑持通配符,一切以SCOT开首的用户都不克不及实行指定的命令。
3。修正了product_user_profile内容,用户必需从头登录SQL*Plus,修正才会失效,也就是只要在登录的时分,SQL*Plus才会反省一遍product_user_profile表中的内容。
因此我们看到,这些信息足够让我们对单个操作实现“逆操作”。 |
|