Oracle許可權(一)

路途中的人2012發表於2016-05-19
001 概述
    預設方式下,任何非授權使用者都不能在Oracle資料庫中執行任何操作。如果不授予許可權,使用者甚至不能成功連線。縱然完成了連線,如果不為其授予更多許可權,使用者仍什麼都不能做。
    grant命令給使用者賬戶授權
    revoke命令撤銷許可權
    預設方式下,只有DBA有權授予任何許可權。
    許可權分為兩組:系統許可權和物件許可權。系統許可權通常允許使用者執行影響資料字典的操作,物件許可權允許使用者執行影響資料的操作。

002 系統許可權
    系統許可權約有200種。大多數都應用於影響資料字典的操作,如建立表或使用者。其它的影響資料庫和例項,如建立表空間、調整例項引數值,或建立會話。一些較常用的許可權如下:
    建立會話:(create session):允許使用者進行連線。否則,使用者甚至無法登入到資料庫。
    受限制的會話(restricted session):如果使用startup restrict啟動資料庫,或使用alter system enable restricted session進行調整,則僅擁有此許可權的使用者可以連線。
    更改資料庫(alter database):允許訪問多個修改物理結構所需的命令。
    更改系統(alter system):允許控制例項引數和記憶體結構
    建立表空間(create tablespace):alter tablespace和drop tablespace許可權允許使用者管理表空間。
    建立表(create table)允許被授權人在自己的模式中建立表;包括更改和刪除表,在其上執行select和DML命令,以及在其上建立、更改或刪除索引。
    授予任何物件許可權(grant any object privilege):允許被授予人將其本身不擁有的物件的物件許可權授予他人,但不能授予自己。
    建立任何表(create any table):被授權人可以建立屬於其它使用者的表。
    刪除任何表(drop any table):被授權人可以刪除屬於其他使用者的表。
    插入任何表、更新任何表、刪除任何表(insert any table,update any table,delete any table):被授權人可以對所有其它使用者擁有的表執行這些DML命令。
    選擇任何表(select any table):被授權人可以對資料庫中的任何表執行select操作。

    如果從使用者撤銷許可權,那麼之前使用者使用相應許可權執行的任何操作仍然完好無缺。另外,如果使用者被授予帶有admin option的許可權,那麼即使對其作了撤銷,他授予了許可權的任何使用者將保留許可權。不儲存系統許可權授予者的記錄,故不存在撤銷級聯。
    note:系統許可權的撤銷不會級聯(這與撤銷物件許可權不同)。

003 實驗驗證
SYS@ORCL> create user hhu identified by hhu;

User created.

SYS@ORCL> grant create session to hhu;

Grant succeeded.

SYS@ORCL> create user hhu0 identified by hhu;

User created.

SYS@ORCL> conn hhu0/hhu
ERROR:
ORA-01045: user HHU0 lacks CREATE SESSION privilege; logon denied


Warning: You are no longer connected to ORACLE.
@> conn hhu/hhu
Connected.
HHU@ORCL> grant create session to hhu0;
grant create session to hhu0
*
ERROR at line 1:
ORA-01031: insufficient privileges


HHU@ORCL> conn / as sysdba
Connected.
SYS@ORCL> grant create session to hhu admin option;
grant create session to hhu admin option
                            *
ERROR at line 1:
ORA-00933: SQL command not properly ended


SYS@ORCL> grant create session to hhu with admin option;

Grant succeeded.

SYS@ORCL> conn hhu/hhu
Connected.
HHU@ORCL> grant create session to hhu0;

Grant succeeded.

HHU@ORCL> conn hhu0/hhu
Connected.
HHU0@ORCL> conn / as sysdba
Connected.
SYS@ORCL> revoke create session from hhu;

Revoke succeeded.

SYS@ORCL> conn hhu0/hhu
Connected.
HHU0@ORCL> conn hhu/hhu
ERROR:
ORA-01045: user HHU lacks CREATE SESSION privilege; logon denied


Warning: You are no longer connected to ORACLE.
@> conn / as sysdba
Connected.
SYS@ORCL> grant restricted session to hhu;

Grant succeeded.

SYS@ORCL> grant alter database to hhu;

Grant succeeded.

SYS@ORCL> grant create session to hhu;

Grant succeeded.

SYS@ORCL> grant create tablespace to hhu;

Grant succeeded.

SYS@ORCL> grant create table to hhu;

Grant succeeded.

SYS@ORCL> grant grant any object privilege to hhu;

Grant succeeded.

SYS@ORCL> grant create any table to hhu;

Grant succeeded.

SYS@ORCL> grant drop any table to hhu;

Grant succeeded.

SYS@ORCL> grant insert any table,update any table,delete any table to hhu;

Grant succeeded.

SYS@ORCL> grant select any table to hhu;

Grant succeeded.

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29067253/viewspace-2103435/,如需轉載,請註明出處,否則將追究法律責任。

相關文章