一、Oracle用戶
系統用戶:sys/system
sys:超級管理員,有最高權限:sysdba角色,有create database 權限;
system:管理操作員,權限很大,sysoper 角色,沒有create database權限;
-- 查詢用戶 --
select * from dba_users; --查看數據庫中所有的用戶 --具有dba權限
select * from all_users; --查看你能管理的所有用戶
select * from user_users; --查看當前用戶信息
select username from all_users where username='SYSTEM'; --查詢指定用戶是否存在
-- 創建用戶 --
-- 注意:在12C中 CDB 中創建用戶必須C##開頭;
create user zhangsan identified by 123456; --創建時不指定表空間和臨時表空間,會使用默認的
create user C##SHEN identified by 123456 default tablespace WUXIA temporary tablespace WUXIATEMP;(CDB)
create user ZHEN identified by 123456 default tablespace ZHAN temporary tablespace ZHENTEMP; (PDB)
-- 刪除用戶 --
drop user user_name ; --刪除用戶
drop user user_name cascade; --刪除用戶cascade級聯刪除(連同用戶下對象一起刪除)
--修改用戶信息--
alter user user_name identified by 新密碼;
注:密碼帶符號時,修改密碼加雙引號;
-- 查詢用戶相關信息 --
select * from all_tables where owner='SYSTEM'; -- 查詢用戶下的所有表 ---
select table_name from user_tables; --查詢當前用戶的表 --
select username,sid,serial# from v$session ; --查看用戶的連接狀況--
select * from session_privs; 查看權限
select * from dba_sys_privs; 系統權限
select * from dba_tab_privs; 對象權限
select * from role_tab_privs; 包含授予角色的對象權限
select * from role_sys_privs;包含授予角色的系統權限
select * fomr dba_sys_privs where grantee='resource'; 查看角色的權限
二、角色和權限
權限:系統權限,對象權限:
系統權限:
顯示系統權限:select * from system_privilege_map;
授權一般是dba完成,用戶授權要具有grant any privillege 的系統權限
授權:grant 權限 to 用戶;
grant create session,create table to shen with admin option ; 加這個用戶可以是角色授權其他用戶
回收系統權限:revoke create session from shen;
常見系統權限:create session 連接數據庫,create view 建視圖 create table 建表
對象權限:
顯示對象權限: select distinct privilege from dba_tab_privs;
授權:grant 對象權限 on 數據庫對象 to 用戶名 [with grant option][,角色名]
回收:revoke 對象權限 on 數據庫對象 from 用戶名
角色:權限的集合;
常見的預定義角色:connect,resource,dba;
一般用戶,只要給用戶授予connect和resource角色
connect 角色:create session 連接權限
權限:create cluster create database link create session
alter session create table create view create sequence
resource角色:一般權限:
權限:create cluster create procedure create table
dba角色:
dba角色具有所有的系統權限,及with admin option選項,默認的dba用戶爲sys和system,他們將任何系統權限授予其他用戶,注意dba角色不具備sysdba,sysoper(啓動,關閉數據庫)
顯示角色:select * from dba_roles;