查看用戶系統(tǒng)權(quán)限:\x0d\x0aselect * from dba_sys_privs;\x0d\x0aselect * from session_privs;\x0d\x0aselect * from user_sys_privs;\x0d\x0a查看用戶對象權(quán)限:\x0d\x0aselect * from dba_tab_privs;\x0d\x0aselect * from all_tab_privs;\x0d\x0aselect * from user_tab_privs;
十余年的漢南網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。網(wǎng)絡(luò)營銷推廣的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整漢南建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)從事“漢南網(wǎng)站設(shè)計”,“漢南網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。
"ORACLE數(shù)據(jù)字典視圖的種類分別為:USER,ALL 和 DBA.
USER_*:有關(guān)用戶所擁有的對象信息,即用戶自己創(chuàng)建的對象信息
ALL_*:有關(guān)用戶可以訪問的對象的信息,即用戶自己創(chuàng)建的對象的信息加上
其他用戶創(chuàng)建的對象但該用戶有權(quán)訪問的信息
DBA_*:有關(guān)整個數(shù)據(jù)庫中對象的信息
(這里的*可以為TABLES,INDEXES,OBJECTS,USERS等。)
1、查看所有用戶
select * from dba_user;
select * from all_users;
select * from user_users;
2、查看用戶系統(tǒng)權(quán)限
select * from dba_sys_privs;
select * from all_sys_privs;
select * from user_sys_privs;
3、查看用戶對象權(quán)限
select * from dba_tab_privs;
select * from all_tab_privs;
select * from user_tab_privs;
4、查看所有角色
select * from dba_roles;
5、查看用戶所擁有的角色
select * from dba_role_privs;
select * from user_role_privs;
6、查看當前用戶的缺省表空間
select username,default_tablespace from user_users;
7、查看某個角色的具體權(quán)限
如grant connect,resource,create session,create view to TEST;
8、查看RESOURCE具有那些權(quán)限
用SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE='RESOURCE
"
1、系統(tǒng)權(quán)限的授予權(quán)獲得
在獲得一個系統(tǒng)權(quán)限的同時選擇WITH ADMIN OPTION從句。
例: grant Create any view to scott WITH ADMIN OPTION;
2、對象權(quán)限的授予權(quán)獲得
在獲得一個系統(tǒng)權(quán)限的同時選擇WITH ADMIN OPTION從句。
例:grant Select on emp to Myuser WITH GRANT OPTIION;
3、對于用戶自身對象的對象授予權(quán)限沒有必要獲得,可以直接授予其他用戶。
4、user2獲得user1所有表的權(quán)限有兩種方法實現(xiàn):
a) 登入user1用戶,把表的Select權(quán)限一個一個授予user2.
b) 登入DBA用戶權(quán)限授予suer2用戶Select Any權(quán)限。
例:Grant Select Any Table to user2; --這樣獲得是所有用戶表的Select權(quán)限。
1.查看所有用戶:
select * from dba_users;
select * from all_users;
select * from user_users;
2.查看用戶或角色系統(tǒng)權(quán)限(直接賦值給用戶或角色的系統(tǒng)權(quán)限):
select * from dba_sys_privs;
select * from user_sys_privs;
3.查看角色(只能查看登陸用戶擁有的角色)所包含的權(quán)限
sqlselect * from role_sys_privs;
4.查看用戶對象權(quán)限:
select * from dba_tab_privs;
select * from all_tab_privs;
select * from user_tab_privs;
5.查看所有角色:
select * from dba_roles;
ORACLE數(shù)據(jù)庫中的權(quán)限和角色
Oracle數(shù)據(jù)庫是一種大型關(guān)系型的數(shù)據(jù)庫,我們知道當使用一個數(shù)據(jù)庫時,僅僅能夠控制哪些人可以訪問數(shù)據(jù)庫,哪些人不能訪問數(shù)據(jù)庫是無法滿足數(shù)據(jù)庫訪問控制的。DBA需要通過一種機制來限制用戶可以做什么,不能做什么,這在Oracle中可以通過為用戶設(shè)置權(quán)限來實現(xiàn)。權(quán)限就是用戶可以執(zhí)行某種操作的權(quán)利。而角色是為了方便DBA管理權(quán)限而引入的一個概念,它實際上是一個命名的權(quán)限集合。
1 權(quán)限
Oracle數(shù)據(jù)庫有兩種途徑獲得權(quán)限,它們分別為:
① DBA直接向用戶授予權(quán)限。
② DBA將權(quán)限授予角色(一個命名的包含多個權(quán)限的集合),然后再將角色授予一個或多個用戶。
使用角色能夠更加方便和高效地對權(quán)限進行管理,所以DBA應(yīng)該習慣于使用角色向用戶進行授予權(quán)限,而不是直接向用戶授予權(quán)限。
Oracle中的權(quán)限可以分為兩類:
?系統(tǒng)權(quán)限
?對象權(quán)限
1.1 系統(tǒng)權(quán)限
系統(tǒng)權(quán)限是在數(shù)據(jù)庫中執(zhí)行某種操作,或者針對某一類的對象執(zhí)行某種操作的權(quán)利。例如,在數(shù)據(jù)庫中創(chuàng)建表空間的權(quán)利,或者在任何模式中創(chuàng)建表的權(quán)利,這些都屬于系統(tǒng)權(quán)限。在Oracle9i中一共提供了60多種權(quán)限。
系統(tǒng)權(quán)限的權(quán)利很大,通常情況下:
① 只有DBA才應(yīng)當擁有alter database系統(tǒng)權(quán)限,該權(quán)限允許用戶對數(shù)據(jù)庫物理結(jié)構(gòu)和可用性進行修改。
② 應(yīng)用程序開發(fā)者一般應(yīng)該擁有Create Table、Create View和Create Type等系統(tǒng)權(quán)限,用于創(chuàng)建支持前端的數(shù)據(jù)庫模式對象。
③ 普通用戶一般只具有Create session系統(tǒng)權(quán)限(可以通過Connection角色獲得),只有Create Session系統(tǒng)權(quán)限的用戶才能連接到數(shù)據(jù)庫
④ 只有具有Grant Any PRivilege系統(tǒng)權(quán)限用戶,或者獲取了具有With Admin Option選項的系統(tǒng)權(quán)限的用戶,才能夠成為其它用戶授予權(quán)限。
1.2對象權(quán)限
對象權(quán)限是針對某個特定的模式對象執(zhí)行操作的權(quán)利。只能針對模式對象來設(shè)置和管理對象權(quán)限。
對于模式對象:表、視圖、序列、存儲過程、存儲函數(shù)、包都可以對象設(shè)置權(quán)限。不同類型模式對象具有不同的對象權(quán)限。比如,表、視圖等對象具有查詢(Select)、修改(Update)、刪除(Delete)等對象權(quán)限,而存儲過程、存儲函數(shù)等對象則具有執(zhí)行(Execute)等對象權(quán)限。
但是并不是所有的模式對象都可以設(shè)置對象權(quán)限。比如簇、索引、觸發(fā)器以及數(shù)據(jù)庫鏈接等模式就不具有對象權(quán)限。這些模式對象的訪問控制是通過相應(yīng)的.系統(tǒng)權(quán)限來實現(xiàn)的,比如,要對索引進行修改,必須擁有Alter Any Index系統(tǒng)權(quán)限。
用戶自動擁有他的模式中所有對象的全部對象權(quán)限,他可以將這些對象權(quán)限授予其他的用戶或角色。比如,Test1用戶創(chuàng)建了一個表Table1,在沒有授權(quán)的情況下,用戶Test2不能查詢、修改、刪除這個表。如果Test1將ETP表的Select對象權(quán)限授予了Test2,則該用戶就可以查詢Table1表了。如果在為其它用戶授予對象權(quán)限時用了With Grant Option選項,被授予權(quán)限的用戶還可以將這個權(quán)限在授予其他用戶。
2 角色
2.1角色的概念
角色就是多個相關(guān)權(quán)限的命名集合。通過角色來進行對用戶授予權(quán)限,可以大大簡化DBA的工作量。比如,處于統(tǒng)一部門中的30多個用戶都需要訪問數(shù)據(jù)庫中的一系列表,DBA可以將這些表的中合適的對象權(quán)限授予一個角色,然后在把這個角色授予這些用戶,這樣進行操作要比為沒有用戶進行授權(quán)要便捷多了,而且要對這些用戶的權(quán)限進行統(tǒng)一修改,只需要修改角色的權(quán)限即可。
2.2角色的優(yōu)點
通過角色為用戶授予權(quán)限,而不是直接向各個用戶授權(quán),具有以下優(yōu)點:
?簡化權(quán)限管理 DBA將用戶群分類,然后為每一類用戶創(chuàng)建角色,并將該角色授予這類用戶所需要的權(quán)限,最后在將改角色授予該類中的各個用戶。這樣不僅簡化了授權(quán)操作,而且當這類用戶的權(quán)限需求發(fā)生改變時,只需要把角色的權(quán)限進行改動,而不必修改每一位用戶的權(quán)限。
?動態(tài)權(quán)限管理 角色可以被禁用或激活。當角色被禁止使用時,擁有該角色的用戶不再擁有授予改角色的權(quán)限了。這樣就可以對多個用戶的權(quán)限進行動態(tài)控制了。
?靈活的編程能力 角色是存儲在數(shù)據(jù)字典中的,并且可以為角色設(shè)置口令。這樣就能夠在應(yīng)用程序中對角色進行控制。比如禁用或者激活等操作。
下面以O(shè)racle9i為例,給出具體的實現(xiàn)用戶授權(quán):
(1)設(shè)定各種角色,及其權(quán)限
CREATE ROLE checkerrole DENTIFIEDBYxm361001;
CREATE ROLE defaultrole IDENTIFIEDBYdefaultrole;
GRANT SELECT,UPDATE ON
account.paytable TO checkerrole;
GRANT CONNECT TO defaultrole;
(2)創(chuàng)建用戶
CREATE USER xiaoli IDENTIFIEDBY xiaoli;
(3)授權(quán)
GRANT checkerrole TO xiaoli;
GRANT defaultrole TO xiaoli;
(4)設(shè)定用戶缺省的角色
ALTER USER xiaoli DEFAULTROLE defaultrole;
(5)注冊過程
CONNECT xiaoli/xiaoli@oracle
此時用戶只有其缺省角色的權(quán)限。
(6)激活角色
SET ROLE checkerrole IDENTIFIEDBY xm361001;
----操作成功后,xiaoli擁有checkerrole的權(quán)限。
----這里的角色和口令是固定的,在應(yīng)用系統(tǒng)中可以由應(yīng)用管理人員自行設(shè)置則更為方便安全
;