亚洲Aⅴ无码Av红楼在线观看_国产午夜福利涩爱AⅤ_国产sm调教一区二区三区_精品人妻一区二区三区不卡毛片

始創(chuàng)于2000年 股票代碼:831685
咨詢熱線:0371-60135900 注冊有禮 登錄
  • 掛牌上市企業(yè)
  • 60秒人工響應
  • 99.99%連通率
  • 7*24h人工
  • 故障100倍補償
全部產品
您的位置: 網站首頁 > 幫助中心>文章內容

Oracle用戶訪問權限與PUBLIC角色的關系

發(fā)布時間:  2012/7/28 17:03:54

在數據庫中創(chuàng)建了一個用戶,這是給第三方系統(tǒng)用的?蛻魪娬{,這個用戶只能訪問到有限的表,在我們規(guī)定的范圍內的表。

于是,我創(chuàng)建 一個用戶,如user_third ,只給了connect 角色,用grant select on table 有限授權。

為此,我寫了一文,請見 如何實現 Oracle中用戶 B只能訪問用戶 A的視圖 ( http://www.linuxidc.com/Linux/2012-06/62061.htm

 

用戶訪問密碼交給客戶后,又發(fā)現一個新問題,它居然能訪問其他用戶的表。

我核實了一下,發(fā)現它確實能訪問別的用戶的表。如數據 庫中TT 用戶下的表。

這是怎么回事?

您從我列出的標題中,一定猜到了吧。這事一定 public 角色有關。

Oracle TimeTen 創(chuàng)建時,它創(chuàng)建的表會自動將它的查詢權限授予給 public 角色。

而數據庫中任何一個用戶都默認擁有 public 角色。

因此,問題就在 public 角色的權限上。我們只需要查詢 public 角色授予了哪些權限,再撤銷這些權限即可。

通過執(zhí)行下列 SQL ,我們能判斷出哪些權限授予給了 public 角色。

SELECT GRANTOR,OWNER,TABLE_NAME,PRIVILEGE FROM DBA_TAB_PRIVS WHERE GRANTEE='PUBLIC';

部分結果如下:

GRANTOR                         OWNER                           TABLE_NAME                      PRIVILEGE

------------------------------ ----------------------------------------

××   GTJA                            TT_03_24577_L                   UPDATE

GTJA                            GTJA                            TT_03_24577_L                   SELECT

GTJA                            GTJA                            TT_03_24577_L                   INSERT

GTJA                            GTJA                            TT_03_24577_L                   DELETE

TT 表的查詢更新刪除插入權限都授予給了public 角色。這個很恐怖,對數據庫系統(tǒng)的安全是有破壞的。

基于此,我們可以判定任何一個數據庫用戶都可以對這些表做查詢更新刪除插入操作。

怎么解決這個權限問題,是很簡單的。但一定要保證不能影響到TT 的正常使用。這是個權衡的問題,可用性和安全兩個角度的權衡。如果TT 不正常了,就考慮將其遷移到其他庫上去,最好是獨立的僅供TT 使用的庫。

具體解決方法如下:

1 、從Oracle TimeTen 上解決,在創(chuàng)建cachegroup 時,將授予公共權限的選項除掉。當然這么做的前提是要保證TT 能夠正常使用。

2 、從數據庫中將這些權限從public 角色撤銷。同樣前提是TT 在這些權限撤銷后能正常工作。

撤銷方法示例如下:

revoke select on   TT_03_24577_L from public;

總結一下,這個實例說明了Oracle 的權限真夠復雜的,日常管理時一定要留意一下public 角色的權限。


本文出自:億恩科技【www.allwellnessguide.com】

 

用戶訪問密碼交給客戶后,又發(fā)現一個新問題,它居然能訪問其他用戶的表。

我核實了一下,發(fā)現它確實能訪問別的用戶的表。如數據 庫中TT 用戶下的表。

這是怎么回事?

您從我列出的標題中,一定猜到了吧。這事一定 public 角色有關。

Oracle TimeTen 創(chuàng)建時,它創(chuàng)建的表會自動將它的查詢權限授予給 public 角色。

而數據庫中任何一個用戶都默認擁有 public 角色。

因此,問題就在 public 角色的權限上。我們只需要查詢 public 角色授予了哪些權限,再撤銷這些權限即可。

通過執(zhí)行下列 SQL ,我們能判斷出哪些權限授予給了 public 角色。

SELECT GRANTOR,OWNER,TABLE_NAME,PRIVILEGE FROM DBA_TAB_PRIVS WHERE GRANTEE='PUBLIC';

部分結果如下:

GRANTOR                         OWNER                           TABLE_NAME                      PRIVILEGE

------------------------------ ----------------------------------------

××   GTJA                            TT_03_24577_L                   UPDATE

GTJA                            GTJA                            TT_03_24577_L                   SELECT

GTJA                            GTJA                            TT_03_24577_L                   INSERT

GTJA                            GTJA                            TT_03_24577_L                   DELETE

TT 表的查詢更新刪除插入權限都授予給了public 角色。這個很恐怖,對數據庫系統(tǒng)的安全是有破壞的。

基于此,我們可以判定任何一個數據庫用戶都可以對這些表做查詢更新刪除插入操作。

怎么解決這個權限問題,是很簡單的。但一定要保證不能影響到TT 的正常使用。這是個權衡的問題,可用性和安全兩個角度的權衡。如果TT 不正常了,就考慮將其遷移到其他庫上去,最好是獨立的僅供TT 使用的庫。

具體解決方法如下:

1 、從Oracle TimeTen 上解決,在創(chuàng)建cachegroup 時,將授予公共權限的選項除掉。當然這么做的前提是要保證TT 能夠正常使用。

2 、從數據庫中將這些權限從public 角色撤銷。同樣前提是TT 在這些權限撤銷后能正常工作。

撤銷方法示例如下:

revoke select on   TT_03_24577_L from public;

總結一下,這個實例說明了Oracle 的權限真夠復雜的,日常管理時一定要留意一下public 角色的權限。


本文出自:億恩科技【www.enidc.com】
-->

服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經營性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經營性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經營性ICP/ISP證:贛B2-20080012
  • 服務器/云主機 24小時售后服務電話:0371-60135900
  • 虛擬主機/智能建站 24小時售后服務電話:0371-60135900
  • 專注服務器托管17年
    掃掃關注-微信公眾號
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權所有  地址:鄭州市高新區(qū)翠竹街1號總部企業(yè)基地億恩大廈  法律顧問:河南亞太人律師事務所郝建鋒、杜慧月律師   京公網安備41019702002023號
      0
     
     
     
     

    0371-60135900
    7*24小時客服服務熱線