1.查詢Oracle所有系統(tǒng)權(quán)限
select * from system_privilege_map
2.查詢Oracle所有對(duì)象權(quán)限
select * from table_privilege_map
3.將'授予系統(tǒng)權(quán)限'這個(gè)權(quán)限給某用戶--當(dāng)然一般采用 dba 給其他用戶授予“其他權(quán)限”,這個(gè)權(quán)限一般不需要給別人
grant any privilege to TestUser 【with admin option】//表示 TestUser 用戶有權(quán)利 給其他用戶授予 系統(tǒng)權(quán)限 。后面 表示對(duì)這個(gè)權(quán)限的維護(hù)(能否再授予其他用戶)
4.舉例: 授予系統(tǒng)權(quán)限 create session (連接數(shù)據(jù)庫的關(guān)鍵權(quán)限,connect角色中有這個(gè)權(quán)限,oracle角色 文章中有介紹)
1.grant create session to TestUser //TestUser就可以連接數(shù)據(jù)庫了
2.grant create session to TestUser with option admin //TestUser就可以連接數(shù)據(jù)庫了,并且 可以 將這個(gè)權(quán)限 給其他用戶
5.收回 系統(tǒng)權(quán)限 不會(huì)級(jí)聯(lián)回收
revoke create session from TestUser
6.關(guān)于 系統(tǒng)權(quán)限 的維護(hù)
with admin option //表示繼承后可以 授予其他用戶
7.關(guān)于 對(duì)象權(quán)限 的維護(hù)
with grant option //表示繼承后可以 授予其他用戶
8.舉例: 授予對(duì)象權(quán)限 update,select,insert,delete,all [4種等于 all]
grant select on scott.emp to TestUser 【with grant option】 //表示給TestUser 授予scott.emp的查詢權(quán)限
grant all on scott.emp to TestUser //表示給TestUser 授予scott.emp的select,update,insert,delete 權(quán)限
9.舉例: 授予 某幾列 對(duì)象權(quán)限
grant update on scott.emp(sal) to luob //指定修改某列
grant select on emp(ename,sal) to luob //只能查詢這指定字段
10.舉例:授予 alter 權(quán)限
grant alter on scott.emp to luob //授予這個(gè)表結(jié)構(gòu)的修改權(quán)限
11.舉例:授予 execute 權(quán)限 (用于用戶執(zhí)行其他方案的包、過程,函數(shù))
grant execute on dbms_transaction to luob; --執(zhí)行 dbms_transaction 包的權(quán)限
12.舉例:授予 index 權(quán)限
grant index on scott.emp to luob 【with grant option】 //授予創(chuàng)建索引的權(quán)限
13.收回 對(duì)象權(quán)限 【cascade】會(huì)級(jí)聯(lián)回收
revoke select on scott.emp from TestUser【cascade】//撤銷查詢權(quán)限或者級(jí)聯(lián)撤銷
14.舉例:級(jí)聯(lián)回收的
grant select on emp to luobing with grant option; //授予權(quán)限 并維護(hù)
conn luobin/m123@ORACLE; //登錄后 給 xiaoming 權(quán)限
grant select on emp to xiaoming;
conn scott/tiger@ORACLE //scott 撤銷 luobing的權(quán)限
revoke select on emp from luobing cascade
conn xiaoming/m123@ORACLE;
select * from scott.emp; //表和視圖不存在
15.查詢當(dāng)前用戶具有的系統(tǒng)權(quán)限
select * from dba_sys_privs where grantee='SYSTEM'
16.查詢當(dāng)前用戶具有的對(duì)象權(quán)限
select * from dba_tab_privs where grantee='SYSTEM';
17.查詢當(dāng)前用戶具有的列權(quán)限
select * from dba_col_privs where grantee='SYSTEM';
18.查詢用戶 SCOTT 所擁有的系統(tǒng)權(quán)限
select * from dba_sys_privs where grantee in (select granted_role from dba_role_privs where grantee='SCOTT');
19.數(shù)據(jù)庫管理員 DBA的一些職責(zé)
1.安裝和升級(jí) oracle 數(shù)據(jù)庫
2.建庫建表建空間 視圖,索引。。。。
3.指定和并實(shí)施 備份和恢復(fù)計(jì)劃
4.數(shù)據(jù)庫權(quán)限管理,調(diào)優(yōu),故障排除
5.對(duì)高級(jí)的dba,要求能參加項(xiàng)目開發(fā),會(huì)編寫sql語句 ,存儲(chǔ)過程,觸發(fā)器,規(guī)則,約束,包
6.管理員 還有管理初始化參數(shù)
show parameter; 有 200多參數(shù) 有參數(shù)可以配置的
7.管理數(shù)據(jù)庫的用戶主要是 sys (董事長)> 和system (總經(jīng)理)
20.sys,sysdba,sysoper的區(qū)別
sys:擁有oracle的基表和視圖,擁有 dba 數(shù)據(jù)庫管理
sysdba:系統(tǒng)管理員
sysoper:系統(tǒng)操作員 的角色和權(quán)限
system:主要存儲(chǔ)次一級(jí)的數(shù)據(jù) 如:oracle的特性和工具的管理信息和
dba,sysdba 角色權(quán)限 區(qū)別
1.存儲(chǔ)的數(shù)據(jù)重要性不一樣 ,權(quán)限不一樣
2.sys 必須 利用 as sysdba 或者 as sysoper 不能用normal(標(biāo)準(zhǔn))方式登錄
3.system 默認(rèn)登錄角色是 dba (conn system/manager)
4.如果用 conn system/manager as sysdba 登錄結(jié)果和 sys 登錄一樣
21. sysdba 和 sysoper的權(quán)限區(qū)別
權(quán)限 | sysdba | sysoper |
能夠 Startup/Shutdown 啟動(dòng)/關(guān)閉數(shù)據(jù)庫 | y | y |
alter database open/mount/backup(設(shè)置數(shù)據(jù)庫不同的狀態(tài)) | y | y |
改變字符集 | y | n |
采用 create/drop database(創(chuàng)建/刪除數(shù)據(jù)庫) | y | n |
create spfile | y | y |
alter database archivelog(歸檔日志) | y | y |
alter database recover(完全和部分恢復(fù)數(shù)據(jù)庫) | y | 只能完全恢復(fù),不能執(zhí)行部分恢復(fù) |
擁有 restricted session(會(huì)話限制)權(quán)限 | y | y |
可以讓用戶作為sys 用戶連接 | y | y |
登錄之后 | sys | public |