oracle顯式授權和隱式授權

來源:互聯網
上載者:User

oracle對象的授權

Oracle授權

一、授權文法

GRANT文法:

1.顯式授權(直接將對象授權給使用者)

GRANT privilege [, ...] ON object [, ...]  TO  { Public| Group | Username|role} [WITH GRANT OPTION ]

例子grant read,write on directory dir_home to public

2.隱式授權(通過將角色授權給使用者)

GRANT role TO  { Public| Group | Username|role}

例子grant connect,resource to oltp_user

文法說明:

privilege (許可權)

可能的許可權有:

SELECT--訪問聲明的表/視圖的所有列/欄位.

INSERT—對聲明的表插入所有列/欄位.

UPDATE—對聲明的表更新所有列/欄位.

DELETE--對聲明的表刪除所有列/欄位.

RULE --表/視圖上定義規則 (參見CREATE RULE語句).

ALL  --賦予所有許可權.

object賦予許可權的對象名.

可能的對象是:

table(表)

view(視圖)

sequence(序列)

index(索引)

directory(目錄)

Public 代表是所有使用者的簡寫.

Group  將要賦予許可權的組GROUP.目前的版本中,組必須是用下面方法顯式建立的.

Username將要賦予許可權的使用者名稱.PUBLIC是代表所有使用者的簡寫.

role  某個角色,(如DBA connect resource)

WITH GRANT OPTION允許向別人賦予同樣許可權,被授權的使用者可以繼續授權.

描述

對象建立後,除了建立者外,除非建立者賦予(GRANT)許可權,其他人沒有訪問對象的許可權。

本欄目更多精彩內容:http://www.bianceng.cnhttp://www.bianceng.cn/database/Oracle/

GRANT允許對象的建立者給某使用者或某組或所有使用者(PUBLIC)某些特定的許可權。不需要給建立者賦予(GRANT)對象的許可權,建立者預設擁有對象的所有許可權,包括刪除它的許可權。

說明

Oracle不允許在預存程序中使用未經顯式授權的對象.要使用另一使用者的對象,必須通過另一使用者給自己顯示授權。

因為Oracle在編譯預存程序時並不檢查定義者擁有的角色,只是檢查其被顯式授與權限,而DBA也是一種角色,所以即使是DBA,也需要顯式授權。

二、授權方式(顯式和隱式)

對象授權有兩種模式,顯式和隱式:

顯示授權和隱式授權的區別是:顯式授權是直接把對象授權給使用者,隱式授權是給使用者授予角色的方式來實現授權。

1.顯式授權是直接用GRANT語句進行授權。

文法:GRANT某種許可權TO使用者

如:

CONN  USER1/Password

GRANT SELECT  ON TABLE1 TO USER2; 將user1的表TABLE1的select許可權顯示授權給user2

GRANT UPDATE  ON TABLE1 TO USER2; 將user1的表TABLE1的update許可權顯示授權給user2

註:用system/manager登入是沒法授權的,要使USER2使用者能在預存程序裡面訪問USER1使用者的表,必須以USER1使用者(該使用者有dba許可權)登入,然後授權就可以了。

SQL>grant select on USER1.MA_USERINFO to USER2

2.隱式授權則是通過ROLE來授權。

文法:GRANT某個角色TO使用者

如:

CONN  USER1

GRANT SELECT ON TABLE1 TO ROLE1;  將USER1的表TABLE1的select許可權顯示授權給Role1

CONN  SYSTEM                     切換成管理員授予角色

GRANT ROLE1 TO USER2;              給USER2授與Role1的許可權。

三、收回許可權

文法:

顯式收權:   revoke許可權from使用者;  從使用者中收回許可權

隱式收權:    Revoke角色 from使用者; 從使用者中收回角色

例子:

revoke  privilege1 from USER2;     從使用者中收回許可權

revoke select on table1 from User1; 收回查詢select表的許可權

revokeall on table1 from User1;     從使用者user1中收回表table1的所有許可權

revoke  ROLE1    from USER2;    從使用者中收回角色

grant  connect to xujin;        對使用者xujin授予connect角色

revoke connect  from xujin     從使用者xujin收回connect角色

End

Author:51cto部落格 Oracle小混子

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.