oracle權(quán)限怎么開啟 oracle系統(tǒng)權(quán)限有哪些

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

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

平江網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián)公司,平江網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為平江千余家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站建設(shè)要多少錢,請找那個售后服務(wù)好的平江做網(wǎng)站的公司定做!

以上我們看到的這些權(quán)限 都是可以通過grant語句來進(jìn)行權(quán)限賦予 同時(shí)也可以用過revoke來進(jìn)行權(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)限 我們是不能自己去擴(kuò)展的 比如上面提到的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)限了 其實(shí)如果有開發(fā)過權(quán)限系統(tǒng)的經(jīng)驗(yàn)的話 對這里的這個概念 可以理解為function permission 也就是你可以進(jìn)行哪些操作

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

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表示的是是否有把當(dāng)前這個系統(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 其實(shí)這里已經(jīng)名字就可以區(qū)分開了 這里是針對于特定的對象的權(quán)限 上面的系統(tǒng)權(quán)限是限定了可以操作的功能 而object permission就更細(xì)化了 具體到了莫個對象你可以操作的功能的權(quán)限

比如 A用戶建立了一個TableA表 現(xiàn)在為了讓B用戶可以看到A這個對象 我們就可以把A table的select權(quán)限 進(jì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里的對象都可以進(jìn)行對象的權(quán)限指定

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

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

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

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中怎么設(shè)置SEQUENCE權(quán)限?

ORACLE中怎么設(shè)置SEQUENCE權(quán)限步驟如下:

1、Create Sequence

首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE權(quán)限。

創(chuàng)建語句如下:

CREATE?SEQUENCE seqTest

INCREMENT?BY?1?--?每次加幾個

START?WITH?1?--?從1開始計(jì)數(shù)

NOMAXvalue?--?不設(shè)置最大值

NOCYCLE?--?一直累加,不循環(huán)

CACHE?10;?--設(shè)置緩存cache個序列,如果系統(tǒng)down掉了或者其它情況將會導(dǎo)致序列不連續(xù),也可以設(shè)置為---------NOCACHE

2、得到Sequence值?

定義好sequence后,你就可以用currVal,nextVal取得值。

CurrVal:返回 sequence的當(dāng)前值

NextVal:增加sequence的值,然后返回 增加后sequence值

得到值語句如下:

SELECT?Sequence名稱.CurrVal?FROM?DUAL;?

如得到上邊創(chuàng)建Sequence值的語句為:

select?seqtest.currval?from?dual

在Sql語句中可以使用sequence的地方:

- 不包含子查詢、snapshot、VIEW的 SELECT 語句

- INSERT語句的子查詢中

- INSERT語句的values中

- UPDATE 的 SET中

如在插入語句中

insert?into?表名(id,name)values(seqtest.Nextval,'sequence?插入測試');

3、Alter Sequence?

擁有ALTER ANY SEQUENCE 權(quán)限才能改動sequence. 可以alter除start至以外的所有sequence參數(shù).如果想要改變start值,必須 drop sequence 再 re-create。

4、Drop Sequence

DROP?SEQUENCE?seqTest;?

5、一個例子

create?or?replace?trigger?tri_test_id

before?insert?on?S_Depart???--S_Depart?是表名

for?each?row

declare

nextid?number;

begin

IF?:new.DepartId?IS?NULLor?:new.DepartId=0?THEN?--DepartId是列名

select?SEQ_ID.nextval?--SEQ_ID正是剛才創(chuàng)建的

into?nextid

from?sys.dual;

:new.DepartId:=nextid;

end?if;

end?tri_test_id;

如何給oracle用戶設(shè)置權(quán)限

一、創(chuàng)建

sys;//系統(tǒng)管理員,擁有最高權(quán)限

system;//本地管理員,次高權(quán)限

scott;//普通用戶,密碼默認(rèn)為tiger,默認(rèn)未解鎖

ORACLE 怎么設(shè)置遠(yuǎn)程連接權(quán)限?

設(shè)置方法如下:

1、找到$ORACLE_HOME/client_1/network/admin目錄下的tnsnames.ora文件,并用文本模式打開。

2、添加以下內(nèi)容:

本地實(shí)例名=

(DESCRIPTION?=

(ADDRESS?=?(PROTOCOL?=?TCP)(HOST?=?數(shù)據(jù)庫IP地址)(PORT?=?端口號))

(CONNECT_DATA?=

(SERVER?=?DEDICATED)

(SERVICE_NAME?=?服務(wù)名)

)

)

3、用工具登錄即可。

名稱欄目:oracle權(quán)限怎么開啟 oracle系統(tǒng)權(quán)限有哪些
本文鏈接:http://m.kartarina.com/article6/hjihog.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)微信公眾號虛擬主機(jī)外貿(mào)網(wǎng)站建設(shè)全網(wǎng)營銷推廣定制開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計(jì)公司
主站蜘蛛池模板: 亚洲的天堂av无码| 手机永久无码国产AV毛片| 中文字幕无码乱人伦| 无码日韩精品一区二区人妻 | 色综合久久久无码中文字幕| 国产精品无码一区二区三区毛片| AV无码精品一区二区三区宅噜噜| 久久久久久国产精品无码超碰| 人妻少妇看A偷人无码精品视频| 中文字幕无码一区二区免费| 亚洲AV无码乱码在线观看代蜜桃 | 亚洲精品国产日韩无码AV永久免费网| 亚洲一区爱区精品无码| 无码免费一区二区三区免费播放| 国产精品无码免费视频二三区| 亚洲av无码不卡一区二区三区| 五月婷婷无码观看| 国产成人无码aa精品一区 | 亚洲性无码av在线| 无码人妻精品一区二区三18禁| 无码 免费 国产在线观看91 | 亚洲精品av无码喷奶水糖心| 国精品无码一区二区三区在线| 免费a级毛片无码a∨蜜芽试看 | 无码人妻精品一区二区三区蜜桃| 国产成人无码一区二区三区在线| 蜜臀亚洲AV无码精品国产午夜.| 无码av高潮喷水无码专区线| 人妻丰满av无码中文字幕| 国外AV无码精品国产精品| 亚洲成AV人在线播放无码| 国产精品无码AV天天爽播放器| 亚洲中文无码mv| 亚洲爆乳精品无码一区二区三区| 自拍中文精品无码| 亚洲午夜无码久久久久| 国产精品无码素人福利免费| 国产莉萝无码AV在线播放| 秋霞无码一区二区| 无码丰满熟妇一区二区| 久久久久亚洲AV片无码下载蜜桃|