日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Oracle之用户操作

發(fā)布時(shí)間:2024/4/13 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle之用户操作 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
上次我們主要講了ORACLE基本的SQL,SQL語(yǔ)法,然后很多同學(xué)用的可能是MYSQL,可能沒(méi)那么大興趣,但是我還是覺(jué)得以后ORACLE是主流啊,上次講了ORACLE的一些語(yǔ)法,還有高級(jí)的查詢,比如說(shuō)MERGE,START WITH CONNECTOR BY這是遞歸,還有ORACLE的一些統(tǒng)計(jì)分析函數(shù),那么咱們繼續(xù),爭(zhēng)取把這些講完,首先用戶訪問(wèn)控制,索引,物化視圖,同義詞,DBLINK,簡(jiǎn)單介紹一下,首先說(shuō)一下用戶的訪問(wèn)控制,你使用ORACLE,相當(dāng)于掃盲,就是用戶控制這一塊

這塊是非常簡(jiǎn)單的,比如用戶裝完數(shù)據(jù)庫(kù)以后,發(fā)現(xiàn)SCOTT,或者HR,其他用戶被鎖住了,或者想鎖定,利用這幾個(gè)語(yǔ)句,然后向修改密碼的,然后查看用戶表信息,創(chuàng)建用戶和刪除用戶這里面都有,然后加上名稱,identified by [password] 這是你自己寫(xiě)的,可以直接指定自己的用戶密碼,刪除用戶采用dropORACLE里面有對(duì)象的概念嗎,比如所屬用戶的對(duì)象,比如對(duì)象的視圖啊,其他的東西都可以被刪除我還是用PL/SQL Developer,然后還是用scott去登陸,我現(xiàn)在用的是一個(gè)最普通的用戶,用的是scott這個(gè)用戶登陸的,然后我的左上角有很多的WINDOW,,比如SQL Window,Report Window,Command Window,那我們可以用Command Window去連一下管理員,管理員用戶, conn system/tiger

我這個(gè)PL/SQL Developer是用scott登陸的,但是我在Command命令里面,登陸的是System,那我就可以對(duì)其他的用戶進(jìn)行授權(quán),做一些其他的事情,你比如我們的里面的HR,HR的用戶我是處于解鎖的狀態(tài),我看我能不能登陸進(jìn)去,比如我conn hr/tiger

select * from tabs;HR的用戶里面可能有這幾張表

只不過(guò)HR里面的數(shù)據(jù)量會(huì)比較大,目前我這個(gè)HR用戶是可以登陸的,默認(rèn)肯定都是鎖著的,那我可以用這幾個(gè)命令去操作,比如用alter user[USER] account lock,alter user hr account lock;

權(quán)限不足是因?yàn)槟悻F(xiàn)在登陸的是HR,你自己不能鎖自己,所以你得用system,你用scott也是不行,因?yàn)闄?quán)限不足,你得用system去登, conn system/tiger,然后去鎖住他

他跟我說(shuō)用戶不存在,那我就鎖一個(gè)scott試一下

這個(gè)可以去做的,我這個(gè)hr怎么不存在呢,那我現(xiàn)在如果用scott登陸就不行了唄,conn scott/tiger,他就說(shuō)已經(jīng)被鎖住了

那我先可以去解鎖,alter user scott accoutn unlock;還是用system去登陸,然后去解鎖

這都是可以的,我們?cè)谶@里再使用一下scott, conn scott/tiger,這回就登陸進(jìn)來(lái)了

他就登陸進(jìn)來(lái)了

看到這幾張表了,就是非常簡(jiǎn)單的這幾個(gè)操作,還有是設(shè)置一個(gè)用戶,用戶名是自己指定的,可以自己建立一個(gè)新的用戶,然后identified by,然后后面是密碼,查看用戶的表信息,這肯定是DBA去,用戶信息表,然后還有創(chuàng)建用戶和刪除用戶,這兩個(gè)命令,先不說(shuō)了,太簡(jiǎn)單了,簡(jiǎn)單的了解一下

然后賦權(quán)這個(gè)事也是簡(jiǎn)單的了解一下吧,這個(gè)我不想說(shuō)太多,如果我給一個(gè)用戶進(jìn)行賦權(quán)的話,grant 這個(gè)權(quán)限 to 這個(gè)用戶,如果回收的話,revoke 這個(gè)權(quán)限 from 這個(gè)用戶,比如查看這個(gè)用戶所有的權(quán)限,select * from session_privs,我們可以看一下,我用SCOTT登陸的

當(dāng)前SCOTT這個(gè)用戶可能有這幾個(gè)權(quán)限,就是這幾個(gè)權(quán)限,SCOTT有的,10個(gè)權(quán)限,然后我再去開(kāi)啟一個(gè)窗口吧,Command Window,我這個(gè)窗口用system等一下, conn system/tiger,然后我去給他賦一個(gè)權(quán)限,這個(gè)很簡(jiǎn)單,就是grant 加一個(gè)權(quán)限 to 哪個(gè)用戶, grant view to scott,這個(gè)權(quán)限就啥來(lái)的,grant createview to scott

就是我已經(jīng)給他賦了createview這個(gè)權(quán)限了

那這個(gè)時(shí)候我的scott用戶呢他就能有createview這個(gè)權(quán)限了,然后如果想要回收,也非常的簡(jiǎn)單,就是revoke,revoke 權(quán)限 from 用戶,權(quán)限也是createview這個(gè)權(quán)限,然后from咱們的scott這個(gè)用戶,revoke create view from scott

再次去看看他的權(quán)限

這就是簡(jiǎn)單的授權(quán)和賦權(quán),你得用system用戶去登陸,還有其他的,在咱們的ORACLE里面,最著名的兩個(gè)角色,除了dba之外,用的兩個(gè)角色就是connect,resource,你自己去做一個(gè)實(shí)際庫(kù)實(shí)例的話,你指定DBA就可以了,但是有的時(shí)候你可以指定connect,resource,給一個(gè)用戶指定這兩個(gè)權(quán)限,然后說(shuō)完了之后,簡(jiǎn)單的說(shuō)一下,我就不操作了,比如我們重新建立一個(gè)用戶,叫zhangsan,給他去指定密碼,也叫1234,然后這個(gè)用戶建立好了以后,那第一件事我就是要干什么,因?yàn)檫@個(gè)用戶你剛建立好,你可以給他分配權(quán)限,然后加上什么表空間啊,一堆東西,然后zhangsan我們可以分配connect和resource兩個(gè)權(quán)限,你會(huì)發(fā)現(xiàn),除了正常的權(quán)限之外,應(yīng)該和scott這個(gè)用戶去做對(duì)比,scott用戶有10個(gè)權(quán)限,你新建zhangsan這個(gè)用戶,比如scott多一個(gè)權(quán)限,就多了一個(gè)unlimited權(quán)限,那這個(gè)權(quán)限是干啥用的呢,他的含義是擁有所有表空間配額的使用權(quán)限,整個(gè)ORACLE所有的地方我都能用,這個(gè)權(quán)限就太大了,一般我們?cè)谡鎸?shí)的生產(chǎn)的時(shí)候,我建立完一個(gè)用戶之后,我需要把表空間份額的權(quán)限給回收,執(zhí)行這句話,revoke unlimited tablespace from 當(dāng)前zhangssan這個(gè)人,回去可以自己去練一練,然后你就可以去查看用戶的缺省表空間,select username,default_tablespace from user_users,創(chuàng)建用戶的時(shí)候也可以指定用戶他指定的表空間是什么,這個(gè)也是可以去做,然后重新去分配一下用戶的配額,alter user zhangsan quota 10m on users; 10m是10兆,我這里隨便寫(xiě)的10M,on在一個(gè)表空間,ORACLE缺省表空間,一般都是users,比如咱們的scott

這是名字,它是缺省表空間,我新建zhangsan,缺省表空間也是users,那我可以干什么事呢,我可以重新給他一個(gè)配額,alter user zhangsan quota 10m on users;給他100M,你給他一個(gè)G,都可以的,然后下面就是說(shuō),你可以讓新用戶,擁有對(duì)scott.emp表的一個(gè)權(quán)限,怎么做呢,grant select這個(gè)權(quán)限,on scott.emp這張表,to給誰(shuí),grant select on scott.emp to zhangsan,給張三這個(gè)人,你想新建的用戶張三,在scott這個(gè)schema上,去創(chuàng)建表的權(quán)限也可以,grant create any table to zhangsan;隨便起個(gè)名字叫zhangsan,然后還有什么啊,還有讓新建用戶擁有scott.emp表的修改權(quán)限,就是我新建的一個(gè)用戶,修改scott這個(gè)Schema,emp修改字段的權(quán)限,直接grant select,update,并且可以指明那個(gè)字段的權(quán)限update(sal),on emp表,to給誰(shuí),給這個(gè)tim, grant select,update(sal) on emp to tim;可以精確到這個(gè)字段,這是可以這么去做的,這個(gè)東西無(wú)論是你用到了還是用不到,或者是你以后要用,這兩個(gè)事簡(jiǎn)單的說(shuō)一說(shuō),關(guān)于權(quán)限這個(gè)事

然后再往下看,如果你要做ORACLE的話,假如你以后要考ORACLE認(rèn)證的話,那肯定會(huì)有兩件事,要考你這個(gè)權(quán)限,傳遞和回收,在ORACLE這個(gè)權(quán)限一般用在什么地方呢,就是咱們開(kāi)發(fā)寫(xiě)存儲(chǔ)過(guò)程的時(shí)候,或者建立數(shù)據(jù)包的時(shí)候,package這個(gè)包,在ORACLE里面有這個(gè)概念,建立包的時(shí)候你得給他賦一些權(quán)限,當(dāng)前的一些用戶,都的有執(zhí)行存儲(chǔ)過(guò)程的權(quán)限,這個(gè)時(shí)候就得用到這些權(quán)限,一般來(lái)講有兩種,一個(gè)叫WITH ADMIN OPTION,WITH GRANT OPTION,這兩個(gè)權(quán)限,你比如系統(tǒng)權(quán)限的傳遞和回收,配置參數(shù)就是這樣的,如果你要給他ADMIN這個(gè)權(quán)限的話,就會(huì)有一個(gè)總結(jié)的概念,叫覆水難收,啥意思,你賦出去的權(quán)限再也收不回來(lái)了,那咱們可以看一下,看我這個(gè)操作,create一個(gè)user,創(chuàng)建了一個(gè)user,然后這個(gè)user叫tim1,我就不自己操作了,我覺(jué)得你們有興趣的操作一下,沒(méi)興趣的就算了,創(chuàng)建了一個(gè)用戶叫tim1,指定密碼identified by,密碼也叫tim1,create user tim1 identified by tim1;然后這里會(huì)有提示User Created也就是創(chuàng)建成功了,這樣以后我這個(gè)tim1也就存在了,下面我做什么事啊,又創(chuàng)建一個(gè)用戶叫tim2,然后密碼也叫tim2,兩個(gè)用戶創(chuàng)建完畢以后create user tim2 identified by tim2;往下走怎么做的,首先system用戶登陸去賦權(quán),就是我說(shuō)的system或者sys都行,賦什么權(quán)限呢,create session,能創(chuàng)建session,給tim1,tim1賦予權(quán)限給tim2,也就是現(xiàn)在有3個(gè)小孩,第一個(gè)小孩叫做sys,剛才我創(chuàng)建了用戶,一個(gè)叫做T1,一個(gè)是T2,T1和T2,他們兩個(gè)都是一個(gè)干干凈凈的一個(gè)用戶的創(chuàng)建,然后我現(xiàn)在做一件事啊,我利用sys這個(gè)用戶,就是系統(tǒng)用戶,我做什么事啊,我把create session登陸的權(quán)限給了T1,當(dāng)前T1這個(gè)用戶,就能create session,就是能登陸,他就能登陸了,然后我利用什么啊,由于我T1有create session的權(quán)限,所以我T1這個(gè)角色去登陸,然后我去賦給第二個(gè)用戶,叫T2,我給T2一個(gè)create session權(quán)限,叫cs,他們兩個(gè)都有create session的權(quán)限以后,看一下我們?cè)趺慈プ龅?首先是grant create session to tim1 with admin option;我賦完權(quán)限以后還沒(méi)完了,后面還多了一句話,叫做with admin option,這個(gè)就是一個(gè)權(quán)限的兩種方案,第一種方案我賦權(quán)的時(shí)候有這種權(quán)限,然后success,然后我在grant create session to tim2;這個(gè)事情做完了以后,這個(gè)時(shí)候我的tim1和tim2都可以進(jìn)行登陸,然后sys這個(gè)用戶去回收tim1的create session這個(gè)權(quán)限,然后tim1肯定就不能登陸了,因?yàn)槲乙呀?jīng)把當(dāng)前的tim1這個(gè)create session這個(gè)權(quán)限,登陸的權(quán)限給去掉了,但是tim2還是可以繼續(xù)登陸,這就是一個(gè)覆水難收的一個(gè)概念,然后你發(fā)現(xiàn)tim1去進(jìn)行登陸的時(shí)候,是不可以的,ERROR;但是tim2去登陸的時(shí)候是已連接,那這個(gè)權(quán)限總結(jié),就是覆水難收,當(dāng)前我這個(gè)用戶給了tim1 create session權(quán)限,然后tim1再把這個(gè)權(quán)限給tim2,然后這個(gè)時(shí)候sys不干了,我想把tim1的權(quán)限回收掉,revoke回收掉,那么這個(gè)時(shí)候相當(dāng)于什么啊,tim2還是可以正常登陸的,如果能夠把tim2的權(quán)限也回收掉,那這個(gè)事就麻煩了,它是不能夠這么去做的,理解一下就行了,你回家可以去做這個(gè)操作 還有一個(gè)問(wèn)題就叫誅連九族,這個(gè)叫g(shù)rant option,后面加上with grant,這是什么意思呢,scott這個(gè)用戶賦權(quán)賦select權(quán)限給tim1,然后tim1賦select權(quán)限給tim2,就是我scott里面有一個(gè)emp表,然后就是T1和T2這兩個(gè)小孩,都想去查EMP表,那就由scott去給tim1他賦權(quán),然后tim1再給tim2賦權(quán),都是select權(quán)限給他了,那這個(gè)時(shí)候我們看一看,首先是grant select on,emp這張表,to tim1,后面加上with grant option,grant select on emp to tim1;然后授權(quán)成功,授權(quán)成功的時(shí)候我使用tim1去連接的時(shí)候,我去查scott.emp,可以看到表的一些信息,select * from scott.emp;可以看到emp表的一些信息,然后我下面做的是什么啊,grant select on emp to tim2;這個(gè)時(shí)候是誰(shuí)做的,是tim1把select on emp這個(gè)權(quán)限給tim2,然后我再利用tim2再去連接的時(shí)候,tim2照樣也能查看到表的信息,然后我再次用scott用戶去登陸,我把emp表的這個(gè)權(quán)限,tim1的權(quán)限給他revoke掉,就是tim1我不讓他查這個(gè)tim1表了,然后撤銷成功了以后,再次去登陸tim1和tim2,他們兩個(gè)誰(shuí)也都看不到emp這張表了,這個(gè)好像就是誅連九族,之前你給別人的權(quán)限,只要我一回收,這是ORACLE講權(quán)限D(zhuǎn)BA里面會(huì)考的兩個(gè)問(wèn)題,一個(gè)是覆水難收,WITH ADMIN OPITON的時(shí)候,覆水難收,就是給出去的權(quán)限,只能回收一個(gè),要不你就的一個(gè)一個(gè)的回收,他不會(huì)鏈條的集體回收,如果你想要做這個(gè)事情,那你就得用with grant option,授權(quán)的時(shí)候用with grant option,這個(gè)應(yīng)該不難,大概能理解這個(gè)意思嗎,很簡(jiǎn)單的是嗎,這個(gè)是ORACLE里面權(quán)限的問(wèn)題,加入你們用的都收ORACLE數(shù)據(jù)庫(kù)的話,你們用的可能都是MYSQL,對(duì)這個(gè)不感冒,你們都用ORACLE數(shù)據(jù)庫(kù)的話,日常工作中肯定會(huì)用到這些命令,比如我建了個(gè)Schema,定一下表空間,分一下配額,重新分配一下配額,然后再怎么樣,然后我這個(gè)SCHEMA能不能看到這樣一個(gè)表的數(shù)據(jù),或者怎么怎么怎么樣,肯定經(jīng)常會(huì)去操作的,包括授權(quán)的時(shí)候,我給他什么權(quán)限

?

總結(jié)

以上是生活随笔為你收集整理的Oracle之用户操作的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。