A. oracle 資料庫查詢許可權問題
dba開頭的消旁念那個表,不是scott的許可權能查的,你可以用sysdba賦值給scott
grant dba to scott;
那樣拿困之後就可以查詢了啟首。
另外你可以desc一下user_sys_privs的結構,grantee不是該視圖的列名。
B. oracle中怎樣查詢用戶許可權
查看用戶系統權納型限:皮罩x0dx0aselect * from dba_sys_privs;x0dx0aselect * from session_privs;x0dx0aselect * from user_sys_privs;x0dx0a查看用戶對象許可權燃茄鬧:x0dx0aselect * from dba_tab_privs;x0dx0aselect * from all_tab_privs;x0dx0aselect * from user_tab_privs;
C. 怎麼查詢oracle中是否有許可權查詢表
方法1:
根據指定用戶名獲得對應用戶所擁有許可權讓亂穗的表
SELECT table_name, owner FROM all_tables WHERE owner = 'SCOTT';方法2:
通過tab視圖獲得當前登錄用戶所有表和視圖,通過tabletype過濾獲得所有表SELECT * FROM tab WHERE tabtype = 'TABLE';方法3:
陪顫根據user_tables表獲得當前用戶擁有所有表
SELECT table_name FROM user_tables;
方法4:
根據sys表空間下all_object表獲得指定用戶指定類型對象(表)sql> SELECT object_name FROM sys.all_objects WHERE owner='坦卜SCOTT' AND object_type='TABLE';
D. 如何查看oracle用戶具有的許可權和角色
上次歷悔有同學問我,如何查看一個oracle用戶具有的許可權和角色,我一時沒答上來,回頭好好研究了一下,記錄一下,備查:
1.查看所有用戶:
select * from dba_users;
select * from all_users;
select * from user_users;
2.查看用戶或角色系統許可權(直接賦陵爛脊值給用戶或角色的系統許可權):
select * from dba_sys_privs;
select * from user_sys_privs;
3.查看角色(只能查看登陸用戶擁有的角色)所包含的許可權
sql>select * from role_sys_privs;
4.查看用戶尺滲對象許可權:
select * from dba_tab_privs;
select * from all_tab_privs;
select * from user_tab_privs;
5.查看所有角色:
select * from dba_roles;
6.查看用戶或角色所擁有的角色:
select * from dba_role_privs;
select * from user_role_privs;
7.查看哪些用戶有sysdba或sysoper系統許可權(查詢時需要相應許可權)
select * from V$PWFILE_USERS
比如我要查看用戶 wzsb的擁有的許可權:
SQL> select * from dba_sys_privs where grantee='WZSB';
GRANTEE PRIVILEGE ADMIN_OPTION
------------------------------ ---------------------------------------- ------------
WZSB CREATE TRIGGER NO
WZSB UNLIMITED TABLESPACE NO
比如我要查看用戶 wzsb的擁有的角色:
SQL> select * from dba_role_privs where grantee='WZSB';
GRANTEE GRANTED_ROLE ADMIN_OPTION DEFAULT_ROLE
------------------------------ ------------------------------ ------------ ------------
WZSB DBA NO YES
查看一個用戶所有的許可權及角色
select privilege from dba_sys_privs where grantee='WZSB'
union
select privilege from dba_sys_privs where grantee in
(select granted_role from dba_role_privs where grantee='WZSB' );
E. oracle中怎樣查詢用戶許可權
"ORACLE數據字典視圖的種類分別為:USER,ALL 和 DBA.
USER_*:有關用戶所擁有的對象信息,即用戶自己創建的對象雀激信息
ALL_*:有關用戶可以訪問的對象的信息,即用戶自己創建的對象的信息加上
賀歲銀其他用戶創建的對象但該用戶有權訪問的信息
DBA_*:有關整個資料庫中對象的信息
(這里的*可以為TABLES,INDEXES,OBJECTS,USERS等。)
1、查看所有用戶
select * from dba_user;
select * from all_users;
select * from user_users;
2、查看用戶系統許可權
select * from dba_sys_privs;
select * from all_sys_privs;
禪宴select * from user_sys_privs;
3、查看用戶對象許可權
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、查看某個角色的具體許可權
如grant connect,resource,create session,create view to TEST;
8、查看RESOURCE具有那些許可權
用SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE='RESOURCE
"
F. ORACLE資料庫中的許可權和角色
ORACLE資料庫中的許可權和角色
Oracle資料庫是一種大型關系型的資料庫,我們知道當使用一個資料庫時,僅僅能夠控制哪些人可以訪問資料庫,哪些人不能訪問資料庫是無法滿足資料庫訪問控制的。DBA需要通過一種機制來限制用戶可以做什麼,不能做什麼,這在Oracle中可以通過為用戶設置許可權來實現。許可權就是用戶可以執行某種操作的權利。而角色是為了方便DBA管理許可權而引入的一個概念,它實際上是一個命名的許可權集合。
1 許可權
Oracle資料庫有兩種途徑獲得許可權,它們分別為:
① DBA直接向用戶授予許可權。
② DBA將許可權授予角色(一個命名的包含多個許可權的集合),然後再將角色授予一個或多個用戶。
使用角色能夠更加方便和高效地對許可權進行管理,所以DBA應該習慣於使用角色向用戶進行授予許可權,而不是直接向用戶授予許可權。
Oracle中的許可權可以分為兩類:
•系統許可權
•對象許可權
1.1 系統許可權
系統許可權是在資料庫中執行某種操作,或者針對某一類的對象執行某種操作的權利。例如,在資料庫中創建表空間的權利,或者在任何模式中創建表的權利,這些都屬於系統許可權。在Oracle9i中一共提供了60多種許可權。
系統許可權的權利很大,通常情況下:
① 只有DBA才應當擁有alter database系統許可權,該許可權允許用戶對資料庫物理結構和可用性進行修改。
② 應用程序開發者一般應該擁有Create Table、Create View和Create Type等系統許可權,用於創建支持前端的資料庫模式對象。
③ 普通用戶一般只具有Create session系統許可權(可以通過Connection角色獲得),只有Create Session系統許可權的用戶才能連接到資料庫
④ 只有具有Grant Any PRivilege系統許可權用戶,或者獲取了具有With Admin Option選項的系統許可權的用戶,才能夠成為其它用戶授予許可權。
1.2對象許可權
對象許可權是針對某個特定的模式對象執行操作的權利。只能針對模式對象來設置和管理對象許可權。
對於模式對象:表、視圖、序列、存儲過程、存儲函數、包都可以對象設置許可權。不同類型模式對象具有不同的對象許可權。比如,表、視圖等對象具有查詢(Select)、修改(Update)、刪除(Delete)等對象許可權,而存儲過程、存儲函數等對象則具有執行(Execute)等對象許可權。
但是並不是所有的模式對象都可以設置對象許可權。比如簇、索引、觸發器以及資料庫鏈接等模式就不具有對象許可權。這些模式對象的訪問控制是通過相應的.系統許可權來實現的,比如,要對索引進行修改,必須擁有Alter Any Index系統許可權。
用戶自動擁有他的模式中所有對象的全部對象許可權,他可以將這些對象許可權授予其他的用戶或角色。比如,Test1用戶創建了一個表Table1,在沒有授權的情況下,用戶Test2不能查詢、修改、刪除這個表。如果Test1將ETP表的Select對象許可權授予了Test2,則該用戶就可以查詢Table1表了。如果在為其它用戶授予對象許可權時用了With Grant Option選項,被授予許可權的用戶還可以將這個許可權在授予其他用戶。
2 角色
2.1角色的概念
角色就是多個相關許可權的命名集合。通過角色來進行對用戶授予許可權,可以大大簡化DBA的工作量。比如,處於統一部門中的30多個用戶都需要訪問資料庫中的一系列表,DBA可以將這些表的中合適的對象許可權授予一個角色,然後在把這個角色授予這些用戶,這樣進行操作要比為沒有用戶進行授權要便捷多了,而且要對這些用戶的許可權進行統一修改,只需要修改角色的許可權即可。
2.2角色的優點
通過角色為用戶授予許可權,而不是直接向各個用戶授權,具有以下優點:
•簡化許可權管理 DBA將用戶群分類,然後為每一類用戶創建角色,並將該角色授予這類用戶所需要的許可權,最後在將改角色授予該類中的各個用戶。這樣不僅簡化了授權操作,而且當這類用戶的許可權需求發生改變時,只需要把角色的許可權進行改動,而不必修改每一位用戶的許可權。
•動態許可權管理 角色可以被禁用或激活。當角色被禁止使用時,擁有該角色的用戶不再擁有授予改角色的許可權了。這樣就可以對多個用戶的許可權進行動態控制了。
•靈活的編程能力 角色是存儲在數據字典中的,並且可以為角色設置口令。這樣就能夠在應用程序中對角色進行控制。比如禁用或者激活等操作。
下面以Oracle9i為例,給出具體的實現用戶授權:
(1)設定各種角色,及其許可權
CREATE ROLE checkerrole DENTIFIEDBYxm361001;
CREATE ROLE defaultrole IDENTIFIEDBYdefaultrole;
GRANT SELECT,UPDATE ON
account.paytable TO checkerrole;
GRANT CONNECT TO defaultrole;
(2)創建用戶
CREATE USER xiaoli IDENTIFIEDBY xiaoli;
(3)授權
GRANT checkerrole TO xiaoli;
GRANT defaultrole TO xiaoli;
(4)設定用戶預設的角色
ALTER USER xiaoli DEFAULTROLE defaultrole;
(5)注冊過程
CONNECT xiaoli/xiaoli@oracle
此時用戶只有其預設角色的許可權。
(6)激活角色
SET ROLE checkerrole IDENTIFIEDBY xm361001;
----操作成功後,xiaoli擁有checkerrole的許可權。
----這里的角色和口令是固定的,在應用系統中可以由應用管理人員自行設置則更為方便安全
;G. oracle 資料庫查詢用戶許可權。
dba_sys_privs是查看系統許可權。未選定行說明沒有系統許可權。
這樣,你grant dba to scott;
然後再查,就可以看到了。
H. 我問一下 怎麼查詢Oracle用戶許可權
select * from dba_sys_privs where grantee='用戶名';
用戶名要大寫,這個是查用戶系統許可權的螞中;
select * from dba_tab_privs where grantee='用戶名悶侍山';
這個查用戶對象許可權。
關於系統許可權和對象許可權的區別談備去問網路。
還有一個dba_col_privs,這個用戶列許可權。
I. oracle查詢許可權
這是oracle的an quan 機制,在存儲過程或者函數中調用其他用戶下的過程、表、函數等 一定要顯式fu quan才可以,利用角色fu quan是不可以的。
因此:
為什麼我在B用戶下查詢A用戶的表,用sql語句可以直接查
===這個是角色fu quan導致的,比如B用戶有慎早數據嫌畝庫管理員角色
類似的:
grant select on table_name to user_name;
grant execute on procere_name to user_name;
grant execute on function_name to user_name;
這些就是顯式賦權。
。。。
---
以芹孝森上,希望對你有所標准。