第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

剛接觸Oracle ,求大神能詳細(xì)解釋一下

剛接觸Oracle ,求大神能詳細(xì)解釋一下

富國(guó)滬深 2022-10-26 10:06:03
搞不清楚身份和角色的區(qū)別。我規(guī)定用戶的登陸身份(sysdba/sysoper/normal),使其擁有相應(yīng)的權(quán)限。而在創(chuàng)建用戶的時(shí)候也賦予相應(yīng)的(connect/resource/dba)角色。他們之間有什么聯(lián)系么?比如:我賦予一個(gè)用戶connect角色,那么我還能用sysdba來登陸么。那登陸了,connect角色沒有那么多權(quán)限,sysdba又有很多權(quán)限,不是很矛盾么?
查看完整描述

3 回答

?
千巷貓影

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊

權(quán)限和角色的區(qū)別在那里。
當(dāng)剛剛建立用戶時(shí),用戶沒有任何權(quán)限,也不能執(zhí)行任何操作。如果要執(zhí)行某種特定的數(shù)據(jù)庫(kù)操作,則必須為其授予系統(tǒng)的權(quán)限;如果用戶要訪問其它方案的對(duì)象,則必須為其授予對(duì)象的權(quán)限。為了簡(jiǎn)化權(quán)限的管理,可以使用角色。
權(quán)限是指執(zhí)行特定類型sql命令或是訪問其它方案對(duì)象的權(quán)利,包括系統(tǒng)權(quán)限和對(duì)象權(quán)限兩種。

系統(tǒng)權(quán)限
? 系統(tǒng)權(quán)限介紹
系統(tǒng)權(quán)限是指執(zhí)行特定類型sql命令的權(quán)利。它用于控制用戶可以執(zhí)行的一個(gè)或是一組數(shù)據(jù)庫(kù)操作。比如當(dāng)用戶具有create table權(quán)限時(shí),可以在其方案中建表,當(dāng)用戶具有create any table權(quán)限時(shí),可以在任何方案中建表。oracle提供了100多種系統(tǒng)權(quán)限。
常用的有:
create session 連接數(shù)據(jù)庫(kù) create table 建表
create view 建視圖 create public synonym 建同義詞
create procedure 建過程、函數(shù)、包 create trigger 建觸發(fā)器
create cluster 建簇

? 顯示系統(tǒng)權(quán)限
oracle提供了100多種系統(tǒng)權(quán)限,而且oracle的版本越高,提供的系統(tǒng)權(quán)限就越多,我們可以查詢數(shù)據(jù)字典視圖system_privilege_map,可以顯示所有系統(tǒng)權(quán)限。
select * from system_privilege_map order by name;

? 授予系統(tǒng)權(quán)限
一般情況,授予系統(tǒng)權(quán)限是由dba完成的,如果用其他用戶來授予系統(tǒng)權(quán)限,則要求該用戶必須具有g(shù)rant any privilege的系統(tǒng)權(quán)限。在授予系統(tǒng)權(quán)限時(shí),可以帶有with admin option選項(xiàng),這樣,被授予權(quán)限的用戶或是角色還可以將該系統(tǒng)權(quán)限授予其它的用戶或是角色。為了讓大家快速理解,我們舉例說明:
1.創(chuàng)建兩個(gè)用戶ken,tom。初始階段他們沒有任何權(quán)限,如果登錄就會(huì)給出錯(cuò)誤的信息。
create user ken identfied by ken;
2 給用戶ken授權(quán)
1). grant create session, create table to ken with admin option;
2). grant create view to ken;
3 給用戶tom授權(quán)
我們可以通過ken給tom授權(quán),因?yàn)閣ith admin option是加上的。當(dāng)然也可以通過dba給tom授權(quán),我們就用ken給tom授權(quán):
1. grant create session, create table to tom;
2. grant create view to ken; --ok嗎?不ok

? 回收系統(tǒng)權(quán)限
一般情況下,回收系統(tǒng)權(quán)限是dba來完成的,如果其它的用戶來回收系統(tǒng)權(quán)限,要求該用戶必須具有相應(yīng)系統(tǒng)權(quán)限及轉(zhuǎn)授系統(tǒng)權(quán)限的選項(xiàng)(with admin option)。回收系統(tǒng)權(quán)限使用revoke來完成。
當(dāng)回收了系統(tǒng)權(quán)限后,用戶就不能執(zhí)行相應(yīng)的操作了,但是請(qǐng)注意,系統(tǒng)權(quán)限級(jí)聯(lián)收回的問題?[不是級(jí)聯(lián)回收!]
system --------->ken ---------->tom
(create session)(create session)( create session)
用system執(zhí)行如下操作:
revoke create session from ken; --請(qǐng)思考tom還能登錄嗎?
答案:能,可以登錄

對(duì)象權(quán)限
? 對(duì)象權(quán)限介紹
指訪問其它方案對(duì)象的權(quán)利,用戶可以直接訪問自己方案的對(duì)象,但是如果要訪問別的方案的對(duì)象,則必須具有對(duì)象的權(quán)限。
比如smith用戶要訪問scott.emp表(scott:方案,emp:表)
常用的有:
alter 修改 delete 刪除 select 查詢 insert 添加
update 修改 index 索引 references 引用 execute 執(zhí)行
? 顯示對(duì)象權(quán)限
通過數(shù)據(jù)字段視圖可以顯示用戶或是角色所具有的對(duì)象權(quán)限。視圖為dba_tab_privs
SQL> conn system/manager;
SQL> select distinct privilege from dba_tab_privs;
SQL> select grantor, owner, table_name, privilege from dba_tab_privs where grantee = 'BLAKE';

1.授予對(duì)象權(quán)限
在oracle9i前,授予對(duì)象權(quán)限是由對(duì)象的所有者來完成的,如果用其它的用戶來操作,則需要用戶具有相應(yīng)的(with grant option)權(quán)限,從oracle9i開始,dba用戶(sys,system)可以將任何對(duì)象上的對(duì)象權(quán)限授予其它用戶。授予對(duì)象權(quán)限是用grant命令來完成的。
對(duì)象權(quán)限可以授予用戶,角色,和public。在授予權(quán)限時(shí),如果帶有with grant option選項(xiàng),則可以將該權(quán)限轉(zhuǎn)授給其它用戶。但是要注意with grant option選項(xiàng)不能被授予角色。
1.monkey用戶要操作scott.emp表,則必須授予相應(yīng)的對(duì)象權(quán)限
1). 希望monkey可以查詢scott.emp表的數(shù)據(jù),怎樣操作?
grant select on emp to monkey;
2). 希望monkey可以修改scott.emp的表數(shù)據(jù),怎樣操作?
grant update on emp to monkey;
3). 希望monkey可以刪除scott.emp的表數(shù)據(jù),怎樣操作?
grant delete on emp to monkey;
4). 有沒有更加簡(jiǎn)單的方法,一次把所有權(quán)限賦給monkey?
grant all on emp to monkey;

2.能否對(duì)monkey訪問權(quán)限更加精細(xì)控制。(授予列權(quán)限)
1). 希望monkey只可以修改scott.emp的表的sal字段,怎樣操作?
grant update on emp(sal) to monkey
2).希望monkey只可以查詢scott.emp的表的ename,sal數(shù)據(jù),怎樣操作?
grant select on emp(ename,sal) to monkey
...
3.授予alter權(quán)限
如果black用戶要修改scott.emp表的結(jié)構(gòu),則必須授予alter對(duì)象權(quán)限
SQL> conn scott/tiger
SQL> grant alter on emp to blake;
當(dāng)然也可以用system,sys來完成這件事。
4.授予execute權(quán)限
如果用戶想要執(zhí)行其它方案的包/過程/函數(shù),則須有execute權(quán)限。
比如為了讓ken可以執(zhí)行包dbms_transaction,可以授予execute權(quán)限。
SQL> conn system/manager
SQL> grant execute on dbms_transaction to ken;
5.授予index權(quán)限
如果想在別的方案的表上建立索引,則必須具有index對(duì)象權(quán)限。
如果為了讓black可以在scott.emp表上建立索引,就給其index的對(duì)象權(quán)限
SQL> conn scott/tiger
SQL> grant index on scott.emp to blake;
6.使用with grant option選項(xiàng)
該選項(xiàng)用于轉(zhuǎn)授對(duì)象權(quán)限。但是該選項(xiàng)只能被授予用戶,而不能授予角色
SQL> conn scott/tiger;
SQL> grant select on emp to blake with grant option;
SQL> conn black/shunping
SQL> grant select on scott.emp to jones;

? 回收對(duì)象權(quán)限
在oracle9i中,收回對(duì)象的權(quán)限可以由對(duì)象的所有者來完成,也可以用dba用戶(sys,system)來完成。
這里要說明的是:收回對(duì)象權(quán)限后,用戶就不能執(zhí)行相應(yīng)的sql命令,但是要注意的是對(duì)象的權(quán)限是否會(huì)被級(jí)聯(lián)收回?【級(jí)聯(lián)回收】
如:scott------------->blake-------------->jones
select on emp select on emp select on emp
SQL> conn scott/tiger@accp
SQL> revoke select on emp from blake
請(qǐng)大家思考,jones能否查詢scott.emp表數(shù)據(jù)。
答案:查不了了(和系統(tǒng)權(quán)限不一樣,剛好相反)

角色:
角色就是相關(guān)權(quán)限的命令集合,使用角色的主要目的就是為了簡(jiǎn)化權(quán)限的管理,假定有用戶a,b,c為了讓他們都擁有權(quán)限
1. 連接數(shù)據(jù)庫(kù)
2. 在scott.emp表上select,insert,update。
如果采用直接授權(quán)操作,則需要進(jìn)行12次授權(quán)。
因?yàn)橐M(jìn)行12次授權(quán)操作,所以比較麻煩喔!怎么辦?

如果我們采用角色就可以簡(jiǎn)化:
首先將creat session,select on scott.emp,insert on scott.emp, update on scott.emp授予角色,然后將該角色授予a,b,c用戶,這樣就可以三次授權(quán)搞定。
角色分為預(yù)定義和自定義角色兩類:
? 預(yù)定義角色
預(yù)定義角色是指oracle所提供的角色,每種角色都用于執(zhí)行一些特定的管理任務(wù),下面我們介紹常用的預(yù)定義角色connect,resource,dba
1.connect角色
connect角色具有一般應(yīng)用開發(fā)人員需要的大部分權(quán)限,當(dāng)建立了一個(gè)用戶后,多數(shù)情況下,只要給用戶授予connect和resource角色就夠了,那么connect角色具有哪些系統(tǒng)權(quán)限呢?
alter session
create cluster
create database link
create session
create table
create view
create sequence

2.resource角色
resource角色具有應(yīng)用開發(fā)人員所需要的其它權(quán)限,比如建立存儲(chǔ)過程,觸發(fā)器等。這里需要注意的是resource角色隱含了unlimited tablespace系統(tǒng)權(quán)限。
resource角色包含以下系統(tǒng)權(quán)限:
create cluster
create indextype
create table
create sequence
create type
create procedure
create trigger
3.dba角色
dba角色具有所有的系統(tǒng)權(quán)限,及with admin option選項(xiàng),默認(rèn)的dba用戶為sys和system,它們可以將任何系統(tǒng)權(quán)限授予其他用戶。但是要注意的是dba角色不具備sysdba和sysoper的特權(quán)(啟動(dòng)和關(guān)閉數(shù)據(jù)庫(kù))。

? 自定義角色
顧名思義就是自己定義的角色,根據(jù)自己的需要來定義。一般是dba來建立,如果用別的用戶來建立,則需要具有create role的系統(tǒng)權(quán)限。在建立角色時(shí)可以指定驗(yàn)證方式(不驗(yàn)證,數(shù)據(jù)庫(kù)驗(yàn)證等)。
1.建立角色(不驗(yàn)證)
如果角色是公用的角色,可以采用不驗(yàn)證的方式建立角色。
create role 角色名 not identified;
2.建立角色(數(shù)據(jù)庫(kù)驗(yàn)證)
采用這樣的方式時(shí),角色名、口令存放在數(shù)據(jù)庫(kù)中。當(dāng)激活該角色時(shí),必須提供口令。在建立這種角色時(shí),需要為其提供口令。
create role 角色名 identified by 密碼;

角色授權(quán)
當(dāng)建立角色時(shí),角色沒有任何權(quán)限,為了使得角色完成特定任務(wù),必須為其授予相應(yīng)的系統(tǒng)權(quán)限和對(duì)象權(quán)限。
1.給角色授權(quán)
給角色授予權(quán)限和給用戶授權(quán)沒有太多區(qū)別,但是要注意,系統(tǒng)權(quán)限的unlimited tablespace和對(duì)象權(quán)限的with grant option選項(xiàng)是不能授予角色的。
SQL> conn system/manager;
SQL> grant create session to 角色名 with admin option
SQL> conn scott/tiger@myoral;
SQL> grant select on scott.emp to 角色名;
SQL> grant insert, update, delete on scott.emp to 角色名;
通過上面的步驟,就給角色授權(quán)了。
2.分配角色給某個(gè)用戶
一般分配角色是由dba來完成的,如果要以其它用戶身份分配角色,則要求用戶必須具有g(shù)rant any role的系統(tǒng)權(quán)限。
SQL> conn system/manager;
SQL> grant 角色名 to blake with admin option;
因?yàn)槲医o了with admin option選項(xiàng),所以,blake可以把system分配給它的角色分配給別的用戶。

? 刪除角色
使用drop role,一般是dba來執(zhí)行,如果其它用戶則要求該用戶具有drop any role系統(tǒng)權(quán)限。
SQL> conn system/manager;
SQL> drop role 角色名;
問題:如果角色被刪除,那么被授予角色的用戶是否還具有之前角色里的權(quán)限?
答案:不具有了

? 顯示角色信息
1.顯示所有角色
SQL> select * from dba_roles;
2.顯示角色具有的系統(tǒng)權(quán)限
SQL> select privilege, admin_option from role_sys_privs where role='角色名';
3.顯示角色具有的對(duì)象權(quán)限
通過查詢數(shù)據(jù)字典視圖dba_tab_privs可以查看角色具有的對(duì)象權(quán)限或是列的權(quán)限。
4.顯示用戶具有的角色,及默認(rèn)角色
當(dāng)以用戶的身份連接到數(shù)據(jù)庫(kù)時(shí),oracle會(huì)自動(dòng)的激活默認(rèn)的角色,通過查詢數(shù)據(jù)字典視圖dba_role_privs可以顯示某個(gè)用戶具有的所有角色及當(dāng)前默認(rèn)的角色
SQL> select granted_role, default_role from dba_role_privs where grantee = ‘用戶名’;

? 精細(xì)訪問控制
精細(xì)訪問控制是指用戶可以使用函數(shù),策略實(shí)現(xiàn)更加細(xì)微的安全訪問控制。如果使用精細(xì)訪問控制,則當(dāng)在客戶端發(fā)出sql語(yǔ)句(select,insert,update,delete)時(shí),oracle會(huì)自動(dòng)在sql語(yǔ)句后追加謂詞(where子句),并執(zhí)行新的sql語(yǔ)句,通過這樣的控制,可以使得不同的數(shù)據(jù)庫(kù)用戶在訪問相同表時(shí),返回不同的數(shù)據(jù)信息,如:
用戶 scott blake jones
策略 emp_access
數(shù)據(jù)庫(kù)表 emp
如上圖所示,通過策略emp_access,用戶scott,black,jones在執(zhí)行相同的sql語(yǔ)句時(shí),可以返回不同的結(jié)果。例如:當(dāng)執(zhí)行select ename from emp; 時(shí),根據(jù)實(shí)際情況可以返回不同的結(jié)果。

實(shí)際上角色有點(diǎn)像JAVA中的代碼重構(gòu).預(yù)定義角色和自定義角色就像是吃飯時(shí)的套餐和自助餐.


查看完整回答
反對(duì) 回復(fù) 2022-11-01
?
holdtom

TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超10個(gè)贊

sysdba是根用戶,包含了所有權(quán)限,connect角色只是其中一小項(xiàng);身份是固定在某個(gè)用戶上的,比如sysdba身份的用戶就是sys,新建的一個(gè)普通用戶身份就是normal;而角色是可以靈活給某個(gè)用戶賦予和剝奪的,根據(jù)需要而定。

查看完整回答
反對(duì) 回復(fù) 2022-11-01
?
幕布斯6054654

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超7個(gè)贊

1、身份相當(dāng)于職位:sysdba類似老板
2、角色相當(dāng)于權(quán)限:網(wǎng)管可以訪問任何網(wǎng)絡(luò),你可以賦予前臺(tái)或財(cái)務(wù)網(wǎng)管角色
3、檢查當(dāng)前用戶的角色:select * from user_role_privs;

查看完整回答
反對(duì) 回復(fù) 2022-11-01
  • 3 回答
  • 0 關(guān)注
  • 166 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)