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

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

oracle角色怎么使用 oracle用戶和角色的關(guān)系

oracle中身份和角色的區(qū)別是什么?

權(quán)限和角色的區(qū)別在那里。 \x0d\x0a 當(dāng)剛剛建立用戶時,用戶沒有任何權(quán)限,也不能執(zhí)行任何操作。如果要執(zhí)行某種特定的數(shù)據(jù)庫操作,則必須為其授予系統(tǒng)的權(quán)限;如果用戶要訪問其它方案的對象,則必須為其授予對象的權(quán)限。為了簡化權(quán)限的管理,可以使用角色。\x0d\x0a權(quán)限是指執(zhí)行特定類型sql命令或是訪問其它方案對象的權(quán)利,包括系統(tǒng)權(quán)限和對象權(quán)限兩種。 \x0d\x0a\x0d\x0a系統(tǒng)權(quán)限 \x0d\x0a? 系統(tǒng)權(quán)限介紹 \x0d\x0a 系統(tǒng)權(quán)限是指執(zhí)行特定類型sql命令的權(quán)利。它用于控制用戶可以執(zhí)行的一個或是一組數(shù)據(jù)庫操作。比如當(dāng)用戶具有create table權(quán)限時,可以在其方案中建表,當(dāng)用戶具有create any table權(quán)限時,可以在任何方案中建表。oracle提供了100多種系統(tǒng)權(quán)限。 \x0d\x0a常用的有: \x0d\x0acreate session 連接數(shù)據(jù)庫 create table 建表 \x0d\x0acreate view 建視圖 create public synonym 建同義詞 \x0d\x0acreate procedure 建過程、函數(shù)、包 create trigger 建觸發(fā)器 \x0d\x0acreate cluster 建簇 \x0d\x0a\x0d\x0a? 顯示系統(tǒng)權(quán)限 \x0d\x0aoracle提供了100多種系統(tǒng)權(quán)限,而且oracle的版本越高,提供的系統(tǒng)權(quán)限就越多,我們可以查詢數(shù)據(jù)字典視圖system_privilege_map,可以顯示所有系統(tǒng)權(quán)限。 \x0d\x0aselect * from system_privilege_map order by name; \x0d\x0a\x0d\x0a? 授予系統(tǒng)權(quán)限 \x0d\x0a 一般情況,授予系統(tǒng)權(quán)限是由dba完成的,如果用其他用戶來授予系統(tǒng)權(quán)限,則要求該用戶必須具有g(shù)rant any privilege的系統(tǒng)權(quán)限。在授予系統(tǒng)權(quán)限時,可以帶有with admin option選項,這樣,被授予權(quán)限的用戶或是角色還可以將該系統(tǒng)權(quán)限授予其它的用戶或是角色。為了讓大家快速理解,我們舉例說明: \x0d\x0a1.創(chuàng)建兩個用戶ken,tom。初始階段他們沒有任何權(quán)限,如果登錄就會給出錯誤的信息。 \x0d\x0acreate user ken identfied by ken; \x0d\x0a2 給用戶ken授權(quán) \x0d\x0a1). grant create session, create table to ken with admin option; \x0d\x0a2). grant create view to ken; \x0d\x0a3 給用戶tom授權(quán) \x0d\x0a我們可以通過ken給tom授權(quán),因為with admin option是加上的。當(dāng)然也可以通過dba給tom授權(quán),我們就用ken給tom授權(quán): \x0d\x0a1. grant create session, create table to tom; \x0d\x0a2. grant create view to ken; --ok嗎?不ok \x0d\x0a\x0d\x0a? 回收系統(tǒng)權(quán)限 \x0d\x0a 一般情況下,回收系統(tǒng)權(quán)限是dba來完成的,如果其它的用戶來回收系統(tǒng)權(quán)限,要求該用戶必須具有相應(yīng)系統(tǒng)權(quán)限及轉(zhuǎn)授系統(tǒng)權(quán)限的選項(with admin option)?;厥障到y(tǒng)權(quán)限使用revoke來完成。 \x0d\x0a 當(dāng)回收了系統(tǒng)權(quán)限后,用戶就不能執(zhí)行相應(yīng)的操作了,但是請注意,系統(tǒng)權(quán)限級聯(lián)收回的問題?[不是級聯(lián)回收!] \x0d\x0asystem ---------ken ----------tom \x0d\x0a(create session)(create session)( create session) \x0d\x0a用system執(zhí)行如下操作: \x0d\x0arevoke create session from ken; --請思考tom還能登錄嗎? \x0d\x0a答案:能,可以登錄 \x0d\x0a\x0d\x0a對象權(quán)限 \x0d\x0a? 對象權(quán)限介紹 \x0d\x0a 指訪問其它方案對象的權(quán)利,用戶可以直接訪問自己方案的對象,但是如果要訪問別的方案的對象,則必須具有對象的權(quán)限。 \x0d\x0a比如smith用戶要訪問scott.emp表(scott:方案,emp:表) \x0d\x0a常用的有: \x0d\x0aalter 修改 delete 刪除 select 查詢 insert 添加 \x0d\x0aupdate 修改 index 索引 references 引用 execute 執(zhí)行 \x0d\x0a? 顯示對象權(quán)限 \x0d\x0a 通過數(shù)據(jù)字段視圖可以顯示用戶或是角色所具有的對象權(quán)限。視圖為dba_tab_privs \x0d\x0aSQL conn system/manager; \x0d\x0aSQL select distinct privilege from dba_tab_privs; \x0d\x0aSQL select grantor, owner, table_name, privilege from dba_tab_privs where grantee = 'BLAKE'; \x0d\x0a\x0d\x0a1.授予對象權(quán)限 \x0d\x0a在oracle9i前,授予對象權(quán)限是由對象的所有者來完成的,如果用其它的用戶來操作,則需要用戶具有相應(yīng)的(with grant option)權(quán)限,從oracle9i開始,dba用戶(sys,system)可以將任何對象上的對象權(quán)限授予其它用戶。授予對象權(quán)限是用grant命令來完成的。 \x0d\x0a 對象權(quán)限可以授予用戶,角色,和public。在授予權(quán)限時,如果帶有with grant option選項,則可以將該權(quán)限轉(zhuǎn)授給其它用戶。但是要注意with grant option選項不能被授予角色。 \x0d\x0a1.monkey用戶要操作scott.emp表,則必須授予相應(yīng)的對象權(quán)限 \x0d\x0a1). 希望monkey可以查詢scott.emp表的數(shù)據(jù),怎樣操作? \x0d\x0a grant select on emp to monkey; \x0d\x0a2). 希望monkey可以修改scott.emp的表數(shù)據(jù),怎樣操作? \x0d\x0a grant update on emp to monkey; \x0d\x0a3). 希望monkey可以刪除scott.emp的表數(shù)據(jù),怎樣操作? \x0d\x0a grant delete on emp to monkey; \x0d\x0a4). 有沒有更加簡單的方法,一次把所有權(quán)限賦給monkey? \x0d\x0a grant all on emp to monkey; \x0d\x0a\x0d\x0a2.能否對monkey訪問權(quán)限更加精細(xì)控制。(授予列權(quán)限) \x0d\x0a1). 希望monkey只可以修改scott.emp的表的sal字段,怎樣操作? \x0d\x0a grant update on emp(sal) to monkey \x0d\x0a2).希望monkey只可以查詢scott.emp的表的ename,sal數(shù)據(jù),怎樣操作? \x0d\x0a grant select on emp(ename,sal) to monkey \x0d\x0a... \x0d\x0a3.授予alter權(quán)限 \x0d\x0a如果black用戶要修改scott.emp表的結(jié)構(gòu),則必須授予alter對象權(quán)限 \x0d\x0aSQL conn scott/tiger \x0d\x0aSQL grant alter on emp to blake; \x0d\x0a當(dāng)然也可以用system,sys來完成這件事。 \x0d\x0a4.授予execute權(quán)限 \x0d\x0a如果用戶想要執(zhí)行其它方案的包/過程/函數(shù),則須有execute權(quán)限。 \x0d\x0a比如為了讓ken可以執(zhí)行包dbms_transaction,可以授予execute權(quán)限。 \x0d\x0aSQL conn system/manager \x0d\x0aSQL grant execute on dbms_transaction to ken; \x0d\x0a5.授予index權(quán)限 \x0d\x0a如果想在別的方案的表上建立索引,則必須具有index對象權(quán)限。 \x0d\x0a如果為了讓black可以在scott.emp表上建立索引,就給其index的對象權(quán)限 \x0d\x0aSQL conn scott/tiger \x0d\x0aSQL grant index on scott.emp to blake; \x0d\x0a6.使用with grant option選項 \x0d\x0a該選項用于轉(zhuǎn)授對象權(quán)限。但是該選項只能被授予用戶,而不能授予角色 \x0d\x0aSQL conn scott/tiger; \x0d\x0aSQL grant select on emp to blake with grant option; \x0d\x0aSQL conn black/shunping \x0d\x0aSQL grant select on scott.emp to jones; \x0d\x0a\x0d\x0a? 回收對象權(quán)限 \x0d\x0a 在oracle9i中,收回對象的權(quán)限可以由對象的所有者來完成,也可以用dba用戶(sys,system)來完成。 \x0d\x0a 這里要說明的是:收回對象權(quán)限后,用戶就不能執(zhí)行相應(yīng)的sql命令,但是要注意的是對象的權(quán)限是否會被級聯(lián)收回?【級聯(lián)回收】 \x0d\x0a如:scott-------------blake--------------jones \x0d\x0a select on emp select on emp select on emp \x0d\x0aSQL conn scott/tiger@accp \x0d\x0aSQL revoke select on emp from blake \x0d\x0a請大家思考,jones能否查詢scott.emp表數(shù)據(jù)。 \x0d\x0a答案:查不了了(和系統(tǒng)權(quán)限不一樣,剛好相反)\x0d\x0a \x0d\x0a角色:\x0d\x0a角色就是相關(guān)權(quán)限的命令集合,使用角色的主要目的就是為了簡化權(quán)限的管理,假定有用戶a,b,c為了讓他們都擁有權(quán)限 \x0d\x0a1. 連接數(shù)據(jù)庫 \x0d\x0a2. 在scott.emp表上select,insert,update。 \x0d\x0a如果采用直接授權(quán)操作,則需要進(jìn)行12次授權(quán)。 \x0d\x0a因為要進(jìn)行12次授權(quán)操作,所以比較麻煩喔!怎么辦? \x0d\x0a\x0d\x0a 如果我們采用角色就可以簡化: \x0d\x0a 首先將creat session,select on scott.emp,insert on scott.emp, update on scott.emp授予角色,然后將該角色授予a,b,c用戶,這樣就可以三次授權(quán)搞定。 \x0d\x0a 角色分為預(yù)定義和自定義角色兩類: \x0d\x0a? 預(yù)定義角色 \x0d\x0a預(yù)定義角色是指oracle所提供的角色,每種角色都用于執(zhí)行一些特定的管理任務(wù),下面我們介紹常用的預(yù)定義角色connect,resource,dba \x0d\x0a1.connect角色 \x0d\x0aconnect角色具有一般應(yīng)用開發(fā)人員需要的大部分權(quán)限,當(dāng)建立了一個用戶后,多數(shù)情況下,只要給用戶授予connect和resource角色就夠了,那么connect角色具有哪些系統(tǒng)權(quán)限呢? \x0d\x0aalter session \x0d\x0acreate cluster \x0d\x0acreate database link \x0d\x0acreate session \x0d\x0acreate table \x0d\x0acreate view \x0d\x0acreate sequence \x0d\x0a\x0d\x0a2.resource角色 \x0d\x0a resource角色具有應(yīng)用開發(fā)人員所需要的其它權(quán)限,比如建立存儲過程,觸發(fā)器等。這里需要注意的是resource角色隱含了unlimited tablespace系統(tǒng)權(quán)限。 \x0d\x0aresource角色包含以下系統(tǒng)權(quán)限: \x0d\x0acreate cluster \x0d\x0acreate indextype \x0d\x0acreate table \x0d\x0acreate sequence \x0d\x0acreate type \x0d\x0acreate procedure \x0d\x0acreate trigger \x0d\x0a3.dba角色 \x0d\x0adba角色具有所有的系統(tǒng)權(quán)限,及with admin option選項,默認(rèn)的dba用戶為sys和system,它們可以將任何系統(tǒng)權(quán)限授予其他用戶。但是要注意的是dba角色不具備sysdba和sysoper的特權(quán)(啟動和關(guān)閉數(shù)據(jù)庫)。 \x0d\x0a\x0d\x0a? 自定義角色 \x0d\x0a顧名思義就是自己定義的角色,根據(jù)自己的需要來定義。一般是dba來建立,如果用別的用戶來建立,則需要具有create role的系統(tǒng)權(quán)限。在建立角色時可以指定驗證方式(不驗證,數(shù)據(jù)庫驗證等)。 \x0d\x0a1.建立角色(不驗證) \x0d\x0a如果角色是公用的角色,可以采用不驗證的方式建立角色。 \x0d\x0a create role 角色名 not identified; \x0d\x0a2.建立角色(數(shù)據(jù)庫驗證) \x0d\x0a 采用這樣的方式時,角色名、口令存放在數(shù)據(jù)庫中。當(dāng)激活該角色時,必須提供口令。在建立這種角色時,需要為其提供口令。 \x0d\x0acreate role 角色名 identified by 密碼; \x0d\x0a\x0d\x0a 角色授權(quán) \x0d\x0a當(dāng)建立角色時,角色沒有任何權(quán)限,為了使得角色完成特定任務(wù),必須為其授予相應(yīng)的系統(tǒng)權(quán)限和對象權(quán)限。 \x0d\x0a1.給角色授權(quán) \x0d\x0a 給角色授予權(quán)限和給用戶授權(quán)沒有太多區(qū)別,但是要注意,系統(tǒng)權(quán)限的unlimited tablespace和對象權(quán)限的with grant option選項是不能授予角色的。 \x0d\x0aSQL conn system/manager; \x0d\x0aSQL grant create session to 角色名 with admin option \x0d\x0aSQL conn scott/tiger@myoral; \x0d\x0aSQL grant select on scott.emp to 角色名; \x0d\x0aSQL grant insert, update, delete on scott.emp to 角色名; \x0d\x0a通過上面的步驟,就給角色授權(quán)了。 \x0d\x0a2.分配角色給某個用戶 \x0d\x0a 一般分配角色是由dba來完成的,如果要以其它用戶身份分配角色,則要求用戶必須具有g(shù)rant any role的系統(tǒng)權(quán)限。 \x0d\x0aSQL conn system/manager; \x0d\x0aSQL grant 角色名 to blake with admin option; \x0d\x0a因為我給了with admin option選項,所以,blake可以把system分配給它的角色分配給別的用戶。 \x0d\x0a\x0d\x0a? 刪除角色 \x0d\x0a 使用drop role,一般是dba來執(zhí)行,如果其它用戶則要求該用戶具有drop any role系統(tǒng)權(quán)限。 \x0d\x0aSQL conn system/manager; \x0d\x0aSQL drop role 角色名; \x0d\x0a問題:如果角色被刪除,那么被授予角色的用戶是否還具有之前角色里的權(quán)限? \x0d\x0a答案:不具有了 \x0d\x0a\x0d\x0a? 顯示角色信息 \x0d\x0a1.顯示所有角色 \x0d\x0aSQL select * from dba_roles; \x0d\x0a2.顯示角色具有的系統(tǒng)權(quán)限 \x0d\x0aSQL select privilege, admin_option from role_sys_privs where role='角色名'; \x0d\x0a3.顯示角色具有的對象權(quán)限 \x0d\x0a 通過查詢數(shù)據(jù)字典視圖dba_tab_privs可以查看角色具有的對象權(quán)限或是列的權(quán)限。 \x0d\x0a4.顯示用戶具有的角色,及默認(rèn)角色 \x0d\x0a 當(dāng)以用戶的身份連接到數(shù)據(jù)庫時,oracle會自動的激活默認(rèn)的角色,通過查詢數(shù)據(jù)字典視圖dba_role_privs可以顯示某個用戶具有的所有角色及當(dāng)前默認(rèn)的角色 \x0d\x0aSQL select granted_role, default_role from dba_role_privs where grantee = ‘用戶名’; \x0d\x0a\x0d\x0a? 精細(xì)訪問控制 \x0d\x0a 精細(xì)訪問控制是指用戶可以使用函數(shù),策略實現(xiàn)更加細(xì)微的安全訪問控制。如果使用精細(xì)訪問控制,則當(dāng)在客戶端發(fā)出sql語句(select,insert,update,delete)時,oracle會自動在sql語句后追加謂詞(where子句),并執(zhí)行新的sql語句,通過這樣的控制,可以使得不同的數(shù)據(jù)庫用戶在訪問相同表時,返回不同的數(shù)據(jù)信息,如: \x0d\x0a用戶 scott blake jones \x0d\x0a策略 emp_access \x0d\x0a 數(shù)據(jù)庫表 emp \x0d\x0a如上圖所示,通過策略emp_access,用戶scott,black,jones在執(zhí)行相同的sql語句時,可以返回不同的結(jié)果。例如:當(dāng)執(zhí)行select ename from emp; 時,根據(jù)實際情況可以返回不同的結(jié)果。 \x0d\x0a\x0d\x0a實際上角色有點像JAVA中的代碼重構(gòu).預(yù)定義角色和自定義角色就像是吃飯時的套餐和自助餐.

創(chuàng)新互聯(lián)是一家專注于網(wǎng)站設(shè)計、網(wǎng)站制作與策劃設(shè)計,西峽網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)10多年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:西峽等地區(qū)。西峽做網(wǎng)站價格咨詢:18980820575

oracle里角色的密碼怎么用呢??

這個 角色的密碼, 一般是這種情況的:

一個用戶,有 默認(rèn)角色 與 默認(rèn)角色 2種。

默認(rèn)角色,就是當(dāng)用戶登錄的時候,就自動擁有的角色

非默認(rèn)角色,就是當(dāng)用戶登錄的時候,用戶需要通過 SET Role 來啟用這個角色。

例如,你同時被授予了 A,B,C 三個角色。 A 為默認(rèn)角色。 B,C非默認(rèn)。

你每次登錄, 自動被賦予了 A 這個角色。

B, C 這2個角色, 是要通過 SET Role 語句 啟用這個角色。

對于 oracle里角色的密碼

就是 當(dāng)你 SET Role 啟用角色的時候,如果這個 角色是有密碼的, 你需要輸入 角色的密碼, 來啟用這個角色。

oracle 中 關(guān)于角色的問題

sys視圖中:role01作為唯一的角色授權(quán),那么他就是默認(rèn)的。

user視圖中:因為你沒有全部繼承角色的權(quán)限(包括密碼),但是你還是授予了這個角色所以就是NO。

你可以嘗試創(chuàng)建用戶不設(shè)置密碼,創(chuàng)建角色設(shè)置密碼,然后把角色授給用戶,再用這個用戶登錄(角色的密碼)試試。不過創(chuàng)建角色設(shè)置密碼,還真是頭一次見到


分享文章:oracle角色怎么使用 oracle用戶和角色的關(guān)系
瀏覽路徑:http://weahome.cn/article/hijjss.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部