標籤:res oracle def arc use 查看 自動 head 服務
Oracle 使用者,角色,許可權等
許可權管理是 Oracle 系統的精華,不同使用者登入到同一資料庫中,可能看到不同數量的表,擁有不同的許可權。Oracle 的許可權分為系統許可權和資料對象許可權,共一百多種,如果單獨對使用者授權,很囧,有一些使用者需要的許可權是相同的,就把這些使用者歸為同一類——某種角色,通過設立一些有預定許可權的角色簡化和明確授權操作,角色出現的動機也就是為了簡化許可權管理,它是許可權的集合。一般做法是:系統把許可權賦給角色,然後把角色賦給使用者,當然也可以直接把某許可權賦給使用者。Oracle 提供細粒度的許可權,可以對錶的某一列單獨設定許可權,可以對某使用者查詢某表自動增添 where 限制條件。
許可權允許使用者訪問屬於其它使用者的對象或執行程式,ORACLE系統提供三種許可權:Object 對象級、System 系統級、Role 角色級。這些許可權可以授予給使用者、特殊使用者public或角色,如果授予一個許可權給特殊使用者"Public"(使用者public是oracle預定義的,每個使用者享有這個使用者享有的許可權),那麼就意味作將該許可權授予了該資料庫的所有使用者。對系統管理權限而言,角色是一個工具,許可權能夠被授予給一個角色,角色也能被授予給另一個角色或使用者。使用者可以通過角色繼承許可權,除了系統管理權限外角色服務沒有其它目的。許可權可以被授予,也可以用同樣的方式撤銷。
Oracle 的角色存放在表 dba_roles 中,某角色包含的系統許可權存放在 dba_sys_privs 中,包含的對象許可權存放在 dba_tab_privs 中。
下面是“角色”、“使用者”和“許可權”的互查:
1. 使用者
例:
@>conn system/888888Connected.SYSTEM@userdata>create user user50 identified by user50;User created.SYSTEM@userdata>grant connect,resource to user50;Grant succeeded.
查看當前登入使用者擁有的所有角色和系統許可權
USER50@userdata>select * from session_privs;PRIVILEGE------------------------------------------------------------------------------------------------------------------------CREATE SESSIONUNLIMITED TABLESPACECREATE TABLECREATE CLUSTERCREATE SEQUENCECREATE PROCEDURECREATE TRIGGERCREATE TYPECREATE OPERATORCREATE INDEXTYPE10 rows selected.USER50@userdata>select * from role_sys_privs;ROLE PRIVILEGE ADMIN_OPT---------------- ------------------------ ---------RESOURCE CREATE SEQUENCE NORESOURCE CREATE TRIGGER NORESOURCE CREATE CLUSTER NORESOURCE CREATE PROCEDURE NORESOURCE CREATE TYPE NOCONNECT CREATE SESSION NORESOURCE CREATE OPERATOR NORESOURCE CREATE TABLE NORESOURCE CREATE INDEXTYPE NO9 rows selected.
查看某一使用者所擁有的角色和系統許可權
SYSTEM@userdata>select * from dba_role_privs where GRANTEE=‘USER50‘;GRANTEE GRANTED_ROLE ADMIN_OPT DEFAULT_R------------------------------ -------------------- --------- ---------USER50 RESOURCE NO YESUSER50 CONNECT NO YESSYSTEM@userdata>select * from dba_sys_privs where GRANTEE=‘USER50‘;GRANTEE PRIVILEGE ADMIN_OPT------------------------------ ------------------------------ ---------USER50 UNLIMITED TABLESPACE NO
查看某一使用者擁有的對象許可權
SYSTEM@userdata>grant select on scott.emp to user50;SYSTEM@userdata>select * from dba_tab_privs where GRANTEE=‘USER50‘;GRANTEE OWNER TABLE_NAME GRANTOR PRIVILEGE GRANTABLE HIERARCHY-------------------- --------------- --------------- --------------- --------------- --------- ---------USER50 SCOTT EMP SCOTT SELECT NO NO
許可權分類
- 系統許可權:系統規定使用者使用資料庫的許可權。(系統許可權是對使用者而言)。
- 對象許可權:某種許可權使用者對其它使用者的表或視圖的存取許可權。(是針對錶或視圖而言的)。
1. 系統許可權管理1.1 系統許可權分類
- DBA: 擁有全部特權,是系統最高許可權,只有DBA才可以建立資料庫結構。
- RESOURCE:擁有Resource許可權的使用者只可以建立實體,不可以建立資料庫結構。
- CONNECT:擁有Connect許可權的使用者只可以登入Oracle,不可以建立實體,不可以建立資料庫結構。
對於普通使用者:授予connect, resource許可權。
對於DBA系統管理使用者:授予connect,resource, dba許可權。
1.2 系統許可權授權命令
[系統許可權只能由DBA使用者授出:sys, system]
授權命令:SQL> grant connect, resource, dba to 使用者名稱1 [,使用者名稱2]...;
[普通使用者通過授權可以具有與system相同的使用者權限,但永遠不能達到與sys使用者相同的許可權,system使用者的許可權也可以被回收。]
Oracle 使用者,角色,許可權等