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