使用product_user_profile來實現使用者許可權的設定
我們有時候在以普通使用者登入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表中的內容。
連結:
連結:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23650854/viewspace-677645/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- NAS使用者許可權的設定
- ORACLE使用者管理與許可權設定Oracle
- mysql 使用者管理和許可權設定MySql
- Linux 怎麼實現新增FTP使用者並設定許可權的方法LinuxFTP
- windows10許可權怎麼設定_win10設定使用者許可權的方法WindowsWin10
- 設計實現業務系統中的使用者許可權管理
- 使用者許可權繼承另一使用者的許可權繼承
- ASP.Net實現使用者許可權管理ASP.NET
- 如何使用Linux使用者身份與程式許可權的設定?Linux
- 大家來談談程式中使用者許可權設計
- 如何設定許可權?
- Oracle 使用者、物件許可權、系統許可權Oracle物件
- [vsftp服務]——ftp虛擬使用者、許可權設定等的實驗FTP
- 提取使用者許可權或是不同資料庫使用者許可權的同步資料庫
- 選單許可權和按鈕許可權設定
- 免費OA使用者許可權設定真的非常重要
- Linux - 設定SFTP服務使用者目錄許可權LinuxFTP
- MongoDB使用者許可權管理,設定密碼並連線MongoDB密碼
- oracle使用者許可權Oracle
- mysql使用者許可權MySql
- oracle 使用者許可權Oracle
- 使用者許可權設計(三)——通用資料許可權管理系統設計
- 【許可權管理】Oracle中檢視、回收使用者許可權Oracle
- SQLServer設定使用者的作業許可權SQLServer
- Pb中多使用者許可權管理實現方案 (轉)
- RabbitMQ使用教程(二)RabbitMQ使用者管理,角色管理及許可權設定MQ
- ubuntu 許可權管理設定Ubuntu
- Atitit godaddy 檔案許可權 root許可權設定Go
- 如何用 Vue 實現前端許可權控制(路由許可權 + 檢視許可權 + 請求許可權)Vue前端路由
- mysql使用者許可權管理MySql
- mysql使用者和許可權MySql
- 使用者物件許可權管理物件
- Oracle使用者與許可權Oracle
- 使用者許可權 plsql OracleSQLOracle
- Oracle使用者許可權管理Oracle
- linux使用者許可權Linux
- 小程式許可權設定(位置)
- Windows許可權設定詳解Windows