Oracle系列:(26)使用者權限控制

來源:互聯網
上載者:User

標籤:oracle



1、使用者

Oracle中的使用者分為二大類

1)Oracle資料庫伺服器建立時,由系統自動建立的使用者,叫系統使用者,如sys。

2)利用系統使用者建立的使用者,叫普通使用者,如scott,hr,c##tiger,zhaojun,...


》用sys登入,查詢當前Oracle資料庫伺服器中已有使用者的名字和狀態

  username表示登入名稱

  expired&locked表示帳號到期和鎖定

  open表示帳號現在可用

  sqlplus / as sysdba;  col username for a30;  col account_status for a30;  set pagesize 100;  select username,account_status from dba_users;

650) this.width=650;" src="http://s1.51cto.com/wyfs02/M00/87/1A/wKioL1fUUNqDh6KPAACk_xZ5C0g763.jpg" title="001.jpg" alt="wKioL1fUUNqDh6KPAACk_xZ5C0g763.jpg" />

  

  查詢Oracle中有哪些使用者

  select * from all_users;

650) this.width=650;" src="http://s2.51cto.com/wyfs02/M02/87/1C/wKiom1fUUR_hR2ECAACNkW8mk1Y192.jpg" title="002.jpg" alt="wKiom1fUUR_hR2ECAACNkW8mk1Y192.jpg" />



2、建立與刪除普通使用者

可以在Oracle中建立新的普通使用者,建立普通使用者命令是:create user,在建立普通使用者的同時,應該為其分配一個具體的資料表空間,通常叫users。


》用sys登入,查詢Oracle中有哪些可用儲存空間,所有普通使用者預設為users儲存空間

  select * from v$tablespace;

650) this.width=650;" src="http://s4.51cto.com/wyfs02/M01/87/1A/wKioL1fUUjTAUCPsAABNM_lDuCU614.jpg" title="003.jpg" alt="wKioL1fUUjTAUCPsAABNM_lDuCU614.jpg" />


650) this.width=650;" src="http://s5.51cto.com/wyfs02/M01/87/1C/wKiom1fUiPHQO4kaAAB97ebKk-k526.jpg" title="001.jpg" alt="wKiom1fUiPHQO4kaAAB97ebKk-k526.jpg" />


》用sys登入,建立普通使用者c##tiger,密碼為abc,預設使用users儲存空間,即對應硬碟上的一個DBF二進位檔案

  sqlplus / as sysdba;  create user c##tiger identified by abc default tablespace users;



》用sys登入,為c##tiger分配users空間無限制使用,即資料庫中DBF檔案可以無限增加,一個DBF檔案不夠,會建立第二個DBF檔案

  sqlplus / as sysdba;  alter user c##tiger quota unlimited on users;

650) this.width=650;" src="http://s1.51cto.com/wyfs02/M01/87/1A/wKioL1fUU1iwo_p6AABZXb3neWw012.jpg" title="004.jpg" alt="wKioL1fUU1iwo_p6AABZXb3neWw012.jpg" />


》用c##tiger登入,能進orcl資料庫嗎?

  sqlplus c##tiger/abc

  進不去orcl資料庫


》用sys登入,刪除普通使用者c##tiger

  sqlplus / as sysdba;  drop user c##tiger cascade;




3、瞭解系統使用者

sys是Oracle中一個重要的系統使用者,sys是Oracle中最高許可權使用者,其角色為SYSDBA(系統管理員)

sqlplus / as sysdba




4、許可權

許可權的最終作用於使用者。即所有使用者在資料庫內的操作對象和可執行檔動作都是受到限制的。

Oracle中許可權分為二大類:

1)系統許可權

2)對象許可權




4.1、系統許可權

針對資料庫中特定操作的許可,例如:讓c##tiger能登入到orcl資料庫,能在orcl資料庫中建立表


》用sys登入,擷取系統許可權的相關資訊,例如:select any table表示針對所有表的select許可權

  sqlplus / as sysdba;  select distinct privilege from dba_sys_privs;

650) this.width=650;" src="http://s4.51cto.com/wyfs02/M02/87/1C/wKiom1fUVNORcB9XAACdZtdbQYM032.jpg" title="005.jpg" alt="wKiom1fUVNORcB9XAACdZtdbQYM032.jpg" />


》用sys登入,為c##tiger分配create session與資料庫建立會話的許可權,即允許該使用者登入

  sqlplus / as sysdba;  grant create session to c##tiger;

650) this.width=650;" src="http://s4.51cto.com/wyfs02/M02/87/1A/wKioL1fUVTORkZRmAAAtGATTi1A472.jpg" title="006.jpg" alt="wKioL1fUVTORkZRmAAAtGATTi1A472.jpg" />


》用c##tiger登入,能進orcl資料庫嗎?

  sqlplus c##tiger/abc

  能進去orcl資料庫


》用c##tiger登入,建立一張tiger的表,能建立嗎?

  sqlplus c##tiger/abc  create table tiger(    name varchar2(20)  );

  這時c##tiger沒有許可權建立表

650) this.width=650;" src="http://s4.51cto.com/wyfs02/M00/87/1C/wKiom1fUVZbDAbsLAAA-Y7g9qS8467.jpg" title="007.jpg" alt="wKiom1fUVZbDAbsLAAA-Y7g9qS8467.jpg" />


》用sys登入,為c##tiger分配create table許可權,即允許建立表

  sqlplus / as sysdba;  grant create table to c##tiger;


》用c##tiger登入,建立一張tiger的表,能建立嗎?

  sqlplus c##tiger/abc  create table tiger(    name varchar2(20)  );

  可以建立c##tiger表


》用sys登入,查詢c##tiger所擁有的系統許可權

  sqlplus / as sysdba;

  select grantee,privilege from dba_sys_privs where lower(grantee) = ‘c##tiger‘;

  grantee表示普通使用者名稱

  privilege許可權名  

650) this.width=650;" src="http://s1.51cto.com/wyfs02/M00/87/1C/wKiom1fUWKjAGUukAABXu71D6C8553.jpg" title="008.jpg" alt="wKiom1fUWKjAGUukAABXu71D6C8553.jpg" />



》用sys登入,撤銷c##tiger的create table許可權

  sqlplus / as sysdba;  revoke create table from c##tiger;




4.2、對象許可權

使用者對已有對象的操作許可權,包括:

1)select可用於表,視圖和序列

2)insert向表或視圖中插入新的記錄

3)update更新表中資料

4)delete刪除表中資料

5)execute函數,過程的執行

6)index為表建立索引

7)references為表建立外健

8)alter修改表或者序列的屬性


》用sys登入,查詢c##tiger所擁有的對象許可權

  sqlplus / as sysdba;  col grantee for a10;  col table_name for a10;  col privilege for a20;  select grantee,table_name,privilege from dba_tab_privs where lower(grantee) = ‘c##tiger‘;


》用sys登入,為c##tiger分配對tiger表的所有許可權,即增刪改查操作

  sqlplus / as sysdba;  grant all on c##tiger.tiger to c##tiger;

  注意:c##tiger表示空間名

        tiger表示該空間下的表名

  C##TIGER   TIGER      FLASHBACK

  C##TIGER   TIGER      DEBUG

  C##TIGER   TIGER      QUERY REWRITE

  C##TIGER   TIGER      ON COMMIT REFRESH

  C##TIGER   TIGER      REFERENCES

  C##TIGER   TIGER      UPDATE

  C##TIGER   TIGER      SELECT

  C##TIGER   TIGER      INSERT

  C##TIGER   TIGER      INDEX

  C##TIGER   TIGER      DELETE

  C##TIGER   TIGER      ALTER

650) this.width=650;" src="http://s1.51cto.com/wyfs02/M00/87/1A/wKioL1fUWbPRVqMdAAECDrrhpqI348.jpg" title="009.jpg" alt="wKioL1fUWbPRVqMdAAECDrrhpqI348.jpg" />


》用c##tiger登入,對tiger表進行增刪改查操作

  sqlplus c##tiger/abc;  insert into tiger(name) values(‘AA‘);  update tiger set name = ‘BB‘;  delete from tiger where rownum = 1;  select * from tiger;






Oracle系列:(26)使用者權限控制

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.