天天看點

2、oracle使用者和權限

權限主要可以分成三類:系統權限、角色、對象權限,角色是一類系統權限的分組,

Oracle 的角色存放在表 dba_roles 中,某角色包含的系統權限存放在 dba_sys_privs 中,

包含的對象權限存放在 dba_tab_privs 中。

2.1、系統權限:

系統權限其實就是使用者在目前使用者架構下所具有的權限,在11g中系統權限有200個,

比如create table,UNLIMITED TABLESPACE等。

1、查詢目前使用者擁有的系統權限:

select * from session_privs;

2、查詢某一個使用者的系統權限:

select * from dba_role_privs where GRANTEE='<使用者名>';

select * from dba_sys_privs where GRANTEE='<使用者名>';

2.2、角色:

角色其實就是一類系統權限的分組,是以給使用者配置設定角色其實也是在給使用者配置設定系統權限;

1、在oracle中有三個比較常用的角色:

1)

CONNECT(基本的連接配接), RESOURCE(程式開發),DBA(資料庫管理);

2)

DBA:擁有全部特權,是系統最高權限,隻有DBA才可以建立資料庫結構;

RESOURCE:擁有Resource權限的使用者隻可以建立實體,不可以建立資料庫結構;

CONNECT:擁有Connect權限的使用者隻可以登入Oracle,不可以建立實體,不可以建立資料庫結構;

3)

對于普通使用者:授予connect, resource權限;

對于DBA管理使用者:授予connect,resource, dba權限;

4)檢視RESOURCE和CONNECT角色中所包含的系統權限:

SELECT * FROM dba_sys_privs WHERE grantee IN ('RESOURCE', 'CONNECT') ORDER BY 1;

2、oracle使用者和權限

2、查詢目前使用者擁有的角色:

SELECT * FROM USER_ROLE_PRIVS;

3、查詢目前使用者擁有的角色和對應的系統權限:

select * from role_sys_privs;

2.3、對象權限(表級權限):

對象權限指的是其它擁有使用者的對象的權限,即對表的操作權限,其它使用者對象的權限包括:

SELECT,DELETE,UPDATE,ALTER,INSERT,INDEX,REFERENCES,FLASHBACK,DEBUG,QUERY REWRITE,ON COMMIT REFRESH;

1、查詢目前使用者擁有的對象權限:

SELECT * FROM USER_TAB_PRIVS;

2.4、grant授權:

1、授予使用者系統權限:

GRANT CREATE VIEW TO <使用者名>;

#給使用者添加"RESOURCE"角色權限中沒有的建立視圖的權限;

補充:

#CREATE DATABASE LINK:建立表空間連結

#CREATE SYNONYM:建立同義詞

2、授予使用者角色權限:

GRANT CONNECT,RESOURCE TO <使用者名>;

3、授予使用者對象權限:

GRANT SELECT,INSERT,UPDATE,DELETE ON <表名> TO <使用者名>;

GRANT ALL PRIVILEGES ON <表名> to <使用者名>;

grant connect,select any table to <使用者名>;

#所有表賦予查詢權限

2.5、REVOKE 回收權限:

1、回收系統權限:

REVOKE CREATE VIEW FROM <使用者名>;

2、回收角色權限:

REVOKE CONNECT,RESOURCE FROM <使用者名>;

3、回收對象權限:

REVOKE INSERT,UPDATE,DELETE ON <表名> FROM <使用者名>;

2.5、角色管理:

1、建立一個角色:

create role <角色名>;

2、将系統權限授權給角色:

grant create any table,create procedure to <角色名>;

3、檢視角色所包含的權限

SELECT * FROM dba_sys_privs WHERE grantee IN ('<角色名>') ORDER BY 1;

4、将角色授權給使用者:

grant <角色名> to <使用者名>;

alter user <使用者名> default role <角色名>;

#将指定角色設定為指定使用者的預設角色;

5、生效角色:

set role <角色名>;

#使特定的角色生效;

set role all;

#将所有的角色生效;

set role none;

#将所有的角色失效;

6、删除角色:

drop role <角色名>;

#角色删除後,原來擁用該角色的使用者就不再擁有該角色了,相應的權限也就沒有了;

2.6、使用者操作:

1、建立使用者:

create user <使用者名> identified by <密碼>;

alter user <使用者名> identified by <密碼>;

#修改密碼;

2、删除使用者:

drop user <使用者名> cascade;

3、設定使用者密碼登入後失效,并要求修改密碼:

alter user <使用者名> password expire;

4、賬戶鎖定和解鎖:

alter user 使用者名 account lock;

#賬戶鎖定;

alter user 使用者名 account unlock;

#解鎖賬号;

5、啟用scott使用者:

scott是一個系統已經建立好的普通使用者,使用者名scott,密碼預設tiger,

預設狀态是被鎖定,DBA使用者執行"alter user scott account unlock"可以

解鎖登陸;

繼續閱讀