當前位置:首頁 » 密碼管理 » oracle表的訪問許可權

oracle表的訪問許可權

發布時間: 2023-05-19 06:52:00

『壹』 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的許可權。

----這里的角色和口令是固定的,在應用系統中可以由應用管理人員自行設置則更為方便安全

;

『貳』 Oracle用戶許可權表的管理方法

我們將通過介紹命令的方式 談談Oracle用戶許可權表的管理方法 希望對大家有所幫助岩祥蠢

我們將從創建Oracle用戶許可權表 開始談起 然後講解登陸等一般性動作 使大家對Oracle用宴埋戶許可權表有個深入的了解

一 創建

sys;//系統管理員 擁有最高許可權

system;//本地管理員 次高許可權

scott;//普通用戶 密碼默認為tiger 默認未解鎖

sys;//系統管理員 擁有最高許可權

system;//本地管理員 次高許可權

scott;//普通用戶 密碼默認為tiger 默認未解鎖

二 登陸

sqlplus / as sysdba;//登陸sys帳戶

sqlplus sys as sysdba;//同上

sqlplus scott/tiger;//登陸普通用戶scott

sqlplus / as sysdba;//登陸sys帳戶

sqlplus sys as sysdba;//同上

sqlplus scott/tiger;//登陸普通用戶scott

三 管理用戶

create user zhangsan;//在管理員帳戶下 創建用戶zhangsan

alert user scott identified by tiger;//修改密碼

create user zhangsan;//在管理員帳戶下 創建用戶zhangsan

alert user scott identified by tiger;//修改密碼

四 授予許可權

默認粗陪的普通用戶scott默認未 解鎖 不能進行那個使用 新建的用戶也沒有任何許可權 必須授予許可權

/*管理員授權*/

grant create session to zhangsan;//授予zhangsan用戶創建session的許可權 即登陸許可權

grant unlimited session to zhangsan;//授予zhangsan用戶使用表空間的許可權

grant create table to zhangsan;//授予創建表的許可權

grante drop table to zhangsan;//授予刪除表的許可權

grant insert table to zhangsan;//插入表的許可權

grant update table to zhangsan;//修改表的許可權

grant all to public;//這條比較重要 授予所有許可權(all)給所有用戶(public)

/*管理員授權*/

grant create session to zhangsan;//授予zhangsan用戶創建session的許可權 即登陸許可權

grant unlimited session to zhangsan;//授予zhangsan用戶使用表空間的許可權

grant create table to zhangsan;//授予創建表的許可權

grante drop table to zhangsan;//授予刪除表的許可權

grant insert table to zhangsan;//插入表的許可權

grant update table to zhangsan;//修改表的許可權

grant all to public;//這條比較重要 授予所有許可權(all)給所有用戶(public)

oralce對許可權管理比較嚴謹 普通用戶 之間也是默認不能互相訪問的 需要互相授權

/*oralce對許可權管理比較嚴謹 普通用戶之間也是默認不能互相訪問的*/

grant select on tablename to zhangsan;//授予zhangsan用戶查看指定表的許可權

grant drop on tablename to zhangsan;//授予刪除表的許可權

grant insert on tablename to zhangsan;//授予插入的許可權

grant update on tablename to zhangsan;//授予修改表的許可權

grant insert(id) on tablename to zhangsan;

grant update(id) on tablename to zhangsan;//授予對指定表特定欄位的插入和修改許可權 注意 只能是insert和update

grant alert all table to zhangsan;//授予zhangsan用戶alert任意表的許可權

/*oralce對許可權管理比較 嚴謹 普通用戶之間也是默認不能互相訪問的*/

grant select on tablename to zhangsan;//授予zhangsan用戶查看指定表的許可權

grant drop on tablename to zhangsan;//授予刪除表的許可權

grant insert on tablename to zhangsan;//授予插入的許可權

grant update on tablename to zhangsan;//授予修改表的許可權

grant insert(id) on tablename to zhangsan;

grant update(id) on tablename to zhangsan;//授予對指定表特定欄位的插入和修改許可權 注意 只能是insert和update

grant alert all table to zhangsan;//授予zhangsan用戶alert任意表的許可權

五 撤銷許可權

基本語法同grant 關鍵字為revoke

基本語法同grant 關鍵字為revoke

六 查看許可權

select * from user_sys_privs;//查看當前用戶所有許可權

select * from user_tab_privs;//查看所用用戶對表的許可權

select * from user_sys_privs;//查看當前用戶所有許可權

select * from user_tab_privs;//查看所用用戶對表的許可權

七 操作表的用戶的表

/*需要在表名前加上用戶名 如下*/

select * from zhangsan tablename

/*需要在表名前加上用戶名 如下*/

select * from zhangsan tablename

八 許可權傳遞

即用戶A將許可權授予B B可以將操作的許可權再授予C 命令如下

grant alert table on tablename to zhangsan with admin option;//關鍵字 with admin option

grant alert table on tablename to zhangsan with grant option;//關鍵字 with grant option效果和admin類似

grant alert table on tablename to zhangsan with admin option;//關鍵字 with admin option

grant alert table on tablename to zhangsan with grant option;//關鍵字 with grant option效果和admin類似

九 角色

角色即許可權的集 合 可以把一個角色授予給用戶

create role myrole;//創建角色

grant create session to myrole;//將創建session的許可權授予myrole

grant myrole to zhangsan;//授予zhangsan用戶myrole的角色

drop role myrole;刪除角色

/*但是有些許可權是不能授予給角色的 比如unlimited tablespace和any關鍵字*/

lishixin/Article/program/Oracle/201311/17543

『叄』 oracle 怎麼查看錶的許可權

方法1:
根據指定用戶名獲喚歷得對應用戶所盯尺擁有許可權的表
SELECT table_name, owner FROM all_tables WHERE owner = 'SCOTT';

方法2:
通過tab視圖獲得當前登錄用戶所有表和視圖,通過tabletype過濾獲和則搜得所有表
SELECT * FROM tab WHERE tabtype = 'TABLE';

『肆』 oracle 怎麼查看錶的許可權

沒有dba的許可權,只能查看你自己的表空間的大小等悶判.
只能查看v$以user開頭的視圖,也就是你自己用戶下的一些相關的表空間,角色,對象等.
例如樓上列舉的哪些
我給你解釋一下他的哪些意思吧
select
*
from
user_tablespaces;就是查看你自己能悄數訪問的表空間
select
*
from
user_tab_partitions;查看你自己用戶下表分區
select
*
from
user_extents;查看你自己用戶下的區
select
*
from
user_indexes;查看你自啟罩首己用戶所能訪問的索引
select
*
from
user_ind_partitions;
查看自己用戶下的索引分區

『伍』 oracle如何查看用戶和許可權

在 Oracle 中查看用戶和它們的許可權,可以使用以下數據改帶隱字典視圖:

  • ALL_USERS:顯示當前用戶可以訪問的所有資料庫用戶的信息。

  • USER_USERS:顯示當前用戶擁有的資料庫用戶的信息。

  • DBA_USERS:顯示資料庫中所有資料庫用戶的信息(僅供 DBA 訪問)。

  • 要查看特定用戶的許可權,您可以使用以下視圖:

  • ALL_TAB_PRIVS:顯示當前用戶可以核廳訪問的所有數據表的行升許可權。

  • USER_TAB_PRIVS:顯示當前用戶擁有的數據表許可權。

  • DBA_TAB_PRIVS:顯示資料庫中所有數據表的許可權(僅供 DBA 訪問)

『陸』 賦予oracle資料庫中某一用戶表許可權的問題

開通其中2張表的查詢許可權,方法如下:飢衫

grant select on bas_checkcycle to jdc;這個是整個語句。

語句分析:

grant select on bas_checkcycle to jdc;

這個顏色為執行語句。

這個顏色是數據表。

這個顏色是用戶;就是需要許可權的用戶。

下面這個是查看,更新,刪除,增加的許可權都開啟。

grant select,update,delete,insert on UserTagPool to [app_webservice];

grant select,update,delete,insert on UserTagPoolMap to [app_webservice];

(6)oracle表的訪問許可權擴展閱讀

Oracle許可權管理

許可權分類:

系統許可權:系統規定用戶使用數據爛含腔庫的許可權。(系統許可權是對用戶而言)。

實體許可權:某種許可權用戶對其它用戶的表或視圖的存取許可權。(是針對表或視圖而言的)。

系統許可權分類:

DBA: 擁有全部特權,是系統最高許可權,只有DBA才可以創建資料庫結構。

RESOURCE:擁有Resource許可權的用戶只可以創建實體,不可以創建資料庫結構。

CONNECT:擁有Connect許可權的用戶只可以登錄Oracle,不可以老棗創建實體,不可以創建資料庫結構。

『柒』 oracle的grant語句,一次只能授權一張表的訪問許可權嗎

grant語句,一次只能對一個對象進行賦權;不能同時對兩個表進行賦權;但可以同時賦權多個不同的許可權;如,grant select,update,insert on test_null to sys;

舉例實踐如下:

1、多表同時賦權,會產生報錯信息。

(7)oracle表的訪問許可權擴展閱讀

1、給資料庫用戶授權(對象為用戶表)

GRANT privilege[, ...] ON object[, ...] TO { PUBLIC | GROUP group| username}

privilege包含,select:查詢、insert:插入、update:更新、delete:刪除、all:所有

2、grant select,insert,update on tablename to public;

給所有用戶授予查春絕詢、插入、更新tablename表的許可權

revoke select,insert,update on tablename from public;//收回所有用戶查詢、插入、更新tablename表的許可權

object包含,table:敬或表、view:亮森伍視圖、sequence:序列、index:索引

3、grant select,insert,update on tablename,viewname,sequencename,indexname to public;

1)public:對所有用戶開放許可權

2)GROUP groupname:對該組所有用戶開放許可權

3)username:對指定用戶開放許可權

參考資料

ORACLE官網-ORACLE GRANT

『捌』 oracle的grant語句,一次只能授權一張表的訪問許可權嗎

grant語句,一次只能對一個對象進行賦權;不能同時對兩個表進行賦權;但可以同時賦權多個不同的許可權;如,grant select,update,insert on test_null to sys;

舉例實踐如下:

1、多表同時賦權,會產生報錯信息。

(8)oracle表的訪問許可權擴展閱讀

1、給資料庫用戶授權(對象為用亮森伍戶表)

GRANT privilege[, ...] ON object[, ...] TO { PUBLIC | GROUP group| username}

privilege包含,select:查詢、insert:插入、update:更新、delete:刪除、all:所有

2、grant select,insert,update on tablename to public;

給所有用戶授予查詢、插入、更新tablename表的許可權

revoke select,insert,update on tablename from public;//收回所有用戶查詢、插入、更新tablename表的權春絕限

object包含,table:表、view:視圖、sequence:序列、index:索引

3、grant select,insert,update on tablename,viewname,sequencename,indexname to public;

1)public:對所有用戶開放許可權

2)GROUP groupname:對該組所有用戶開放許可權

3)username:對指定用敬或戶開放許可權

參考資料

ORACLE官網-ORACLE GRANT

『玖』 oracle資料庫,只有訪問視圖許可權,沒有訪問表許可權

視圖里邊的表也是該用戶下的,去掉表的授權,視圖不受影響;如果里邊的表是其它用戶,需要 with grant option;
sqlplus / as sysdba
create table t1(f1 number);
create view v1 as select * from t1;
create user cc identified by wcycc;
grant connect to cc;
grant select on v1 to cc;
conn cc/wcycc
select * from sys.v1;

『拾』 oracle無法訪問dba表

Oracle的DBA表空則雹間是特殊的表空間,它僅僅是內置的資料庫的字典表的容器。因此無法使用sqlplus編輯器或其它任何sql語句查看其中的表改盯正內容,也無法直接訪問它們。另外,由於dba表空間是只讀的,因此無法向它添加任何錶,也無法在其中創建新的表。但是,核悔Oracle提供了一些內部視圖,用戶可以通過這些內部視圖來查看存儲在dba表空間中的表和信息,以及運行一些必要的操作。

熱點內容
百度網盤上傳錯誤 發布:2025-02-08 12:56:21 瀏覽:69
安卓手機怎麼解除防抖系統 發布:2025-02-08 12:55:37 瀏覽:389
sql2008sql代理 發布:2025-02-08 12:55:34 瀏覽:50
vs編譯找不到指定項目文件 發布:2025-02-08 12:36:54 瀏覽:243
怎樣用windows伺服器搭建網站 發布:2025-02-08 12:27:38 瀏覽:532
android獲取音樂 發布:2025-02-08 12:26:05 瀏覽:962
存儲的數據可以復制嗎 發布:2025-02-08 12:20:22 瀏覽:852
scraino編程 發布:2025-02-08 11:59:41 瀏覽:266
我的世界伺服器進不去該怎麼辦 發布:2025-02-08 11:47:41 瀏覽:236
linux的telnet 發布:2025-02-08 11:47:36 瀏覽:288