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

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

oracle怎么給包賦權(quán) oracle怎么賦權(quán)dbms包

關(guān)于ORACLE的權(quán)限賦予問題

我們經(jīng)常談及Oracle的權(quán)限 比如Connect DBA resource sysdba select any table select_catelog_role這樣一些權(quán)限 讓我們眼花繚亂的 那么如何來區(qū)分這些種類繁多的privilege中不至于眼迷離呢 這個文章將會對你在這方面的了解起到幫助

創(chuàng)新互聯(lián)建站堅持“要么做到,要么別承諾”的工作理念,服務領(lǐng)域包括:做網(wǎng)站、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務,滿足客戶于互聯(lián)網(wǎng)時代的棲霞網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡建設(shè)合作伙伴!

以上我們看到的這些權(quán)限 都是可以通過grant語句來進行權(quán)限賦予 同時也可以用過revoke來進行權(quán)限收回的操作的 但是 他們雖然都在grant里出現(xiàn) 但是有各自有著本質(zhì)的不同

oracle里的權(quán)限有兩種權(quán)限 系統(tǒng)權(quán)限和對象權(quán)限 所謂系統(tǒng)權(quán)限 就是oracle里已經(jīng)hardcode寫死的權(quán)限 這些權(quán)限 我們是不能自己去擴展的 比如上面提到的select any table create any table create table等 這里的權(quán)限已經(jīng)在oracle里全部規(guī)定好了

我們可以通過查看system_privilege_map這個數(shù)據(jù)字典表來查看所以的oracle系統(tǒng)內(nèi)置的權(quán)限

SQL select * from system_privilege_map;

PRIVILEGE NAME?????????????????????????????????????? PROPERTY

ALTER SYSTEM?????????????????????????????????????

AUDIT SYSTEM?????????????????????????????????????

CREATE SESSION???????????????????????????????????

ALTER SESSION????????????????????????????????????

RESTRICTED SESSION???????????????????????????????

這里就是所有的內(nèi)置的系統(tǒng)權(quán)限了 其實如果有開發(fā)過權(quán)限系統(tǒng)的經(jīng)驗的話 對這里的這個概念 可以理解為function permission 也就是你可以進行哪些操作

這里特別提到一個另外的知識點 有網(wǎng)游朋友問過我 create any table和create table有什么區(qū)別 create table只能老老實實的給自己的scheam創(chuàng)建表 而不能以create table otherschema tablename這樣的方式給其他的schema創(chuàng)建表 額外提到這點 有很多朋友這塊還是模糊的

oracle通過數(shù)據(jù)字典表dba_sys_privs這個表來記錄user被賦予的系統(tǒng)權(quán)限 比如

我們現(xiàn)在執(zhí)行

SQLgrant select any table to test ; 把select any table的權(quán)限賦予test 這個用戶

Grant succeeded

SQL select * from dba_sys_privs where grantee = TEST ;

GRANTEE??????????????????????? PRIVILEGE??????????????????????????????? ADMIN_OPTION

TEST ????????????????????????? SELECT ANY TABLE???????????????????????? NO

這里就可以查詢到這個記錄了 admin_option表示的是是否有把當前這個系統(tǒng)權(quán)限grant給其他用戶的意思 yes 表示test 除了自己有這個權(quán)限 還可以把這個權(quán)限賦予其他用戶 N就是沒有g(shù)rant的權(quán)限了

我們可以用一下語句試試

SQL grant select any table to test with admin option;

Grant succeeded

在來看看剛才的記錄

GRANTEE??????????????????????? PRIVILEGE??????????????????????????????? ADMIN_OPTION

TEST ????????????????????????? SELECT ANY TABLE???????????????????????? YES

現(xiàn)在test 就可以賦予select any table給別的用戶了

下面我們看看object permission 其實這里已經(jīng)名字就可以區(qū)分開了 這里是針對于特定的對象的權(quán)限 上面的系統(tǒng)權(quán)限是限定了可以操作的功能 而object permission就更細化了 具體到了莫個對象你可以操作的功能的權(quán)限

比如 A用戶建立了一個TableA表 現(xiàn)在為了讓B用戶可以看到A這個對象 我們就可以把A table的select權(quán)限 進行賦予 這里的A table上的select權(quán)限就是一個對象權(quán)限

除了select 還有update delete insert alter drop index references這樣正對于對象的權(quán)限

除了可以給表對象指定對象權(quán)限外 view sequence procedure function package triggger MV等這些oracle里的對象都可以進行對象的權(quán)限指定

對于對象權(quán)限來說 由于對象權(quán)限完全是動態(tài)的 在對一個對象進行g(shù)rant的時候 才能看到具體的對象權(quán)限 所以對象權(quán)限是不像system privilege那樣有一個表來描述的 只有一個表來記錄用戶和這個用戶對于的對象權(quán)限的關(guān)系表 這個表就是dba_tab_privs;

這里這個名字比較容易讓人誤會為只有table的對象權(quán)限 其實不然 這里其他類型的對象的對象權(quán)限也會記錄進來

實驗一下 還是剛才的test 用戶 我現(xiàn)在把對象dbms_xplan的execute的權(quán)限給他 dbms_xplan這個有些朋友可能不熟悉 這是執(zhí)行計劃有關(guān)的一個對象 朋友們?nèi)绻麤]有安裝執(zhí)行計劃的包 可以用dbms_output對象做實驗

SQLgrant execute on dbms_xplan to test ;

SQLgrant execute on dbms_output to test ;

SQL select * from dba_tab_privs where grantee = TEST ;

GRANTEE??????????????????????? OWNER????????????????????????? TABLE_NAME???????????????????? GRANTOR??????????????????????? PRIVILEGE??????????????????????????????? GRANTABLE HIERARCHY

TEST ????????????????????????? SYS??????????????????????????? DBMS_XPLAN???????????????????? SYS??????????????????????????? EXECUTE????????????????????????????????? NO??????? NO

TEST ????????????????????????? SYS??????????????????????????? DBMS_OUTPUT??????????????????? SYS??????????????????????????? EXECUTE

這里注意和fuanction 不同的 這里有一個GRANTABLE的字段 意味和上面admin option一樣的作用

不過這里的sql不同了

SQLgrant execute on dbms_xplan to test with grant option;

這里是oracle里的權(quán)限了

不過有的人可能會問道 咦 你是不是漏掉了 不是我們還可以

grant connect resource dba to username;嗎 那她們都是什么權(quán)限呀

在這里就要注意了 這里的connct resource dba都不是權(quán)限 而是一個role 角色 一個角色是 個或者多個系統(tǒng)權(quán)限或者對象權(quán)限的集合 是便于我們管理用戶賦權(quán)而演化而來的 這里的create role和賦予role權(quán)限我們就不詳談了 朋友們可以自己查一查相關(guān)資料 role是我們可以動態(tài)建立的 建立的role可以用grant來賦予權(quán)限 或者把一個role賦予另一個role

我們可以通過dba_roles這個表來查詢系統(tǒng)里所有的role

SQL select * from dba_roles;

ROLE?????????????????????????? PASSWORD_REQUIRED

CONNECT??????????????????????? NO

RESOURCE?????????????????????? NO

DBA??????????????????????????? NO

SELECT_CATALOG_ROLE??????????? NO

EXECUTE_CATALOG_ROLE?????????? NO

DELETE_CATALOG_ROLE??????????? NO

我們可以把role的賦予一個用戶

比如

SQLgrant select_catalog_role to test ;

我們可以通過dba_role_privs來查詢相關(guān)用戶的role的賦予 比如

SQL select * from dba_role_privs where grantee = TEST ;

lishixinzhi/Article/program/Oracle/201311/16827

請教oracle包權(quán)限問題

比如有一個包test_pkg,下面包含procedures1,procedure2.當我給這個包的執(zhí)行權(quán)限授予一個用戶test_user。

grant execute on test_pkg to test_user ;

不需要,只需要將包的執(zhí)行權(quán)限賦予用戶可以了

怎么給oracle數(shù)據(jù)庫創(chuàng)建用戶,并賦權(quán)限

一般創(chuàng)建用戶用的是create user,然后再通過grant賦權(quán)。

創(chuàng)建:create user XXXX identified by xxxxx;

賦權(quán):grant connect,resource,XXXXXX to XXXXXX; (具體權(quán)利查詢dba_sys_privs)

oracle庫里有一個package,現(xiàn)在想授權(quán)給一個用戶修改

沒這么寫過,既然能授權(quán)還不如,直接用授權(quán)的用戶改呢,反正不可能總改,如果要授權(quán)給別人改想控制權(quán)限,那么建議你試試replace on package,因為我們每次修改一個package其實都是replace一次。

不過從來沒這么授權(quán)過,行不行不確定,要試試,你可以查查dba_sys_privs表,看看哪個授權(quán)能滿足你的需要。

關(guān)于ORACLE用戶賦權(quán)

spool grant_b2a.lst

select 'grant select on b.'||table_name||' to a;' from dba_tables where owner='B';

spool off

@grant_b2a.lst

oracle中怎么賦予用戶權(quán)限

oracle中賦予用戶權(quán)限的具體步驟如下:

1、首先打開電腦,點擊打開電腦桌面左下角的開始圖標。

2、然后在彈出來的窗口中點擊搜索框,輸入“cmd”,回車確定。

3、然后在彈出來的窗口中點擊輸入“grant unlimited tablespace to 用戶名”,回車確定,獲取操作表空間權(quán)限。

4、然后在彈出來的窗口中點擊打開“grant create table to 用戶名”回車確定,獲取創(chuàng)建表權(quán)限。

5、然后點擊輸入“grante drop table to 用戶名”,回車確定獲取刪除表權(quán)限。

6、點擊輸入“grant insert table to 用戶名”,回車確定獲取插入表權(quán)限。

7、點擊輸入“grant update table to 用戶名”,回車確定獲取更新表權(quán)限。


當前標題:oracle怎么給包賦權(quán) oracle怎么賦權(quán)dbms包
路徑分享:http://weahome.cn/article/hjjosc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部