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