【Orcale】sqlplus 基本指令操作之許可權管理

00潤物無聲00發表於2016-06-19

    最近學習了寫Oracle的東西,使用sqlplus操作Orcale的許可權管理和角色管理。Oracle的sql*plus是與oracle資料庫進行互動的客戶端工具,藉助sql*plus可以檢視、修改資料庫記錄。在sql*plus中,可以執行sql*plus命令與sql語句。

首先是使用系統管理員許可權登入資料庫,它擁有最高許可權;

sqlplus / as sysdba; //登陸sys帳戶 

如果出現下圖的情況,可能是Oracle的服務沒有啟動,首選啟動服務,之後再次進行登入;

    

登入之後可以檢視登入使用者;

show user;
    

建立使用者並授權;

    我們使用命令建立使用者,Oracle中新建的使用者也沒有任何許可權,必須授予許可權;

系統許可權  

grant create session to lisi;       //授予lisi使用者建立session的許可權,即登陸許可權 (必須授予,登入使用)
grant create table to lisi;         //授予lisi使用者建立表的許可權
grant unlimited tablespace to lisi; //授予lisi使用者使用表空間的許可權(想建立表,必須具有使用表空間許可權)
grant create session public; //把建立session的許可權,授予所有的使用者;
</pre><pre>
    PS:當一個使用者具備了建立表和使用表空間的許可權,建立的表屬於該使用者,該使用者同時具備對這個表的增,刪,改,查操作;

    建立使用者並授權;

    

    能夠授予同時也就能撤銷許可權;

revoke create session from lisi;       //授予lisi使用者建立session的許可權,即登陸許可權 
revoke unlimited tablespace from lisi; //授予lisi使用者使用表空間的許可權
revoke create table from lisi;         // 授予lisi使用者建立表的許可權 


    我們使用lisi使用者登入,檢視它具有的系統許可權;

select * from user_sys_privs;  //檢視使用者的系統許可權;

    

   

物件許可權

    oracle中物件是彼此分開的,預設情況下,不能相互訪問資料,但是可以通過授予物件許可權的方式,讓不同使用者之間的相互訪問;

    我們使用lisi使用者建立的表lisitable ,然後在沒有給wangwu授權的情況下,讓wangwu查詢lisitable;(沒有許可權)

    

    我們讓lisi使用者把許可權授予wangwu使用者,同時也可以撤銷授予其他使用者的許可權,授予的許可權還可以具體到表的某一列上;

    

    這是我們使用wangwu使用者來訪問lisi使用者的lisitable;

    

    我們可以檢視物件所具備的許可權;(以wangwu為例)



許可權傳遞

    預設情況下,許可權之間是不可以相互傳遞的;但是當我們加上admin option 之後就能進行傳遞;

    系統使用者操作:

    

    lisi也具備授予wangwu,alert any table的許可權;

    

    

總結

    通過這些作業系統許可權,物件許可權和許可權之間的傳遞的一些指令,一方面熟悉了指令的使用,對資料庫表的增刪改查,同時也理解了Oracle的特點。

  

相關文章