1. 程式人生 > 其它 >2、oracle使用者和許可權

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、查詢當前使用者擁有的角色:

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"可以

解鎖登陸;

 

轉自:https://www.cnblogs.com/LiuChang-blog/p/12315492.html