真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

catalog.sql腳本怎么編寫(xiě)

這篇文章給大家介紹catalog.sql腳本怎么編寫(xiě),內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

創(chuàng)新互聯(lián)-專(zhuān)業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性?xún)r(jià)比葉縣網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式葉縣網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋葉縣地區(qū)。費(fèi)用合理售后完善,十多年實(shí)體公司更值得信賴(lài)。

        前面介紹了如何通過(guò)手工創(chuàng)建數(shù)據(jù)庫(kù),在創(chuàng)建數(shù)據(jù)庫(kù)之后執(zhí)行了腳本$ORACLA_HOME/rdbms/admin/catalog.sql腳本,這里著重介紹一下該腳本的作用。

        該腳本用戶(hù)創(chuàng)建oracle動(dòng)態(tài)性能視圖,比如v$session,v$session_wait,v$transactoin等。這類(lèi)性能視圖主要用于監(jiān)控oracle實(shí)例運(yùn)行的狀態(tài),腳本文件開(kāi)始時(shí)的注釋已經(jīng)說(shuō)明其作用:

    Rem NAME
    Rem   CATALOG.SQL
    Rem FUNCTION
    Rem   Creates data dictionary views.
    Rem NOTES
    Rem   Must be run when connected AS SYSDBA

必須采用sysdba角色的用戶(hù)才可以執(zhí)行該腳本。

     下面分析一下常用的v$session來(lái)分析一下

     create or replace view v_$session as select * from v$session;
     create or replace public synonym v$session for v_$session;
     grant select on v_$session to select_catalog_role;

      可以發(fā)現(xiàn)數(shù)據(jù)庫(kù)通過(guò)該執(zhí)行該腳本對(duì)底層的v$session視圖進(jìn)一步作了封裝。

通過(guò)創(chuàng)建一個(gè)新的視圖v_$session,并將該v_$session視圖的查詢(xún)權(quán)限分配了

select_catalog_role這個(gè)角色,任何user只要擁有select_catalog_role這個(gè)角色,都可以通過(guò)sys.v_$session來(lái)訪問(wèn)sys用戶(hù)的v_$session視圖,但是考慮到用戶(hù)訪問(wèn)的不便,同時(shí)也考慮對(duì)sys用戶(hù)對(duì)應(yīng)視圖的封裝,創(chuàng)建了一個(gè)public 同義詞。

擁有select_catalog_role角色的用戶(hù)其實(shí)訪問(wèn)的只是v$session這個(gè)public同義詞,實(shí)現(xiàn)了對(duì)底層v$session視圖的封裝隱藏,用戶(hù)本身并不知道該視圖時(shí)sys用戶(hù)還是其他用戶(hù)。

        進(jìn)一步向下查看,所有的動(dòng)態(tài)性能視圖都是通過(guò)這種方式對(duì)sys用戶(hù)下的視圖做了封裝隱藏。我們可以參照這種做法實(shí)現(xiàn)類(lèi)似的封裝

       
SQL> conn / as sysdba

SQL>create table test(t number(10));

SQL>conn scott/tiger

SQL>select count(*) from test;

ERROR at line 1:
ORA-00942: table or view does not exist

切回到sys用戶(hù)

SQL>conn / as sysdba

SQL>create view test_ as select * from test;

View created.

SQL>create public synonym test for test_;

Synonym created.

SQL>grant select on test_ to tiger;

Grant succeeded.

對(duì)中間視圖test_查詢(xún)權(quán)限分配完畢。切回到scott用戶(hù)試下

SQL>conn scott/tiger

Connected.

SQL>select count(*) from test;

  COUNT(*)
----------
         0

可見(jiàn)scott用戶(hù)已經(jīng)可以查詢(xún)sys用戶(hù)下的test表。但是實(shí)際上用戶(hù)查詢(xún)的僅僅是這個(gè)public synonym。

catalog腳本中還需要注意一點(diǎn),所有的v_$視圖的查詢(xún)權(quán)限都分配給了select_catalog_role這個(gè)角色,意味著只要用戶(hù)分配給了該角色,就能查詢(xún)?cè)撃_本中所有的v$性能視圖。

SQL> grant select_catalog_role to scott;

Grant succeeded.
SQL> conn scott/tiger
Connected.
SQL> select count(*) from v$session;

  COUNT(*)
----------
        17

scott用戶(hù)已經(jīng)可以查詢(xún)v$session視圖,否則scott用戶(hù)按照utlsampl.sql創(chuàng)建之后不允許查詢(xún)v$之類(lèi)的性能視圖。

而select_catalog_role這個(gè)角色是在執(zhí)行創(chuàng)建oracle數(shù)據(jù)庫(kù)腳本時(shí)自動(dòng)創(chuàng)建的,由于oracle創(chuàng)建數(shù)據(jù)庫(kù)時(shí)會(huì)自動(dòng)執(zhí)行$ORACLE_HOME/rdbms/admin/sql.bsq腳本。我們通過(guò)該腳本,可以看到具體如下:
/
create role select_catalog_role
/
create role execute_catalog_role
/
create role delete_catalog_role
/
grant select_catalog_role to dba with admin option
/
grant execute_catalog_role to dba with admin option
/
grant delete_catalog_role to dba with admin option

可以看到建庫(kù)時(shí)oracle自動(dòng)創(chuàng)建了select_catalog_role這個(gè)角色,將該角色賦予給dba角色,并允許dba角色的用戶(hù)賦予權(quán)限。

關(guān)于catalog.sql腳本怎么編寫(xiě)就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。


文章題目:catalog.sql腳本怎么編寫(xiě)
本文鏈接:http://weahome.cn/article/gdoeph.html

其他資訊

在線咨詢(xún)

微信咨詢(xún)

電話咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部