国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

使用product_user_profile來實現用戶權限的設定

2024-07-21 02:38:22
字體:
來源:轉載
供稿:網友

  我們有時候在以普通用戶登錄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表中的內容。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 理塘县| 西乌珠穆沁旗| 仪征市| 晋中市| 剑川县| 双鸭山市| 泰顺县| 双桥区| 三穗县| 加查县| 浦东新区| 虞城县| 丽水市| 扶余县| 五台县| 宜昌市| 泊头市| 托里县| 平邑县| 庆元县| 长顺县| 冷水江市| 迁安市| 汶川县| 西城区| 安国市| 南昌市| 泊头市| 东阳市| 峨边| 南乐县| 福鼎市| 壶关县| 长沙县| 浙江省| 色达县| 乌拉特中旗| 水富县| 鸡西市| 抚远县| 江达县|