討論區快速選單
知識庫快速選單
學Java開發這些基本功一定要會 政府補助!學嵌入式+物聯網
[ 回上頁 ] [ 討論區發言規則 ]
請問 Oracle DBA 一個問題...
更改我的閱讀文章字型大小
作者 : edlins(希望之子)
[ 貼文 1 | 人氣 3 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2012/6/25 上午 09:57:26
最近在公司, 跟MIS部門申請對於 MES 的所有Tables 只要有Select權限的帳號,
但MIS對於Oralce 的管理似乎不懂, 教我該如何提供 SQL Script給MIS讓他們幫我建立呢?

這有點類似在挑戰他們的基本能力~

小弟對Oracle的管理, 是不太懂的~

雖然書上有說,

create user <使用者名稱>
identified by <Password>
default tablespace<tablespace_name>
temppotary tablespace<tablespace_name>
quota<space_size>

建立User帳號, 是OK~

create user edward
identified by xxxxxxxx
default tablespace mesdata
quota 50M on mesdata

接下來的 Grant 權限, 只要有對mesdata的 tablespace所建立出來的Tables有Select權限就可以, 該如何做?
不太懂, tablespace 與 table之間的關係? 請多多指教...

是否要先
GRANT CREATE SESSION TO edward;

讓我可以先建立連線, 使用TOAD來連線?

然後, 再Grant MES的Tables的 Select 權限給edward這個帳號就可以了嗎?
GRANT SELECT ON TABLE_NAME TO APPS WITH GRANT OPTION;

grant select on tblwiplotstate to edward with grant option;

是否只要給他們這樣, 我就可以使用TOAD來連線, 下Select的 SQL command呢?

謝謝您~




作者 : falconwang(falcon) 貼文超過200則
[ 貼文 225 | 人氣 91 | 評價 470 | 評價/貼文 2.09 | 送出評價 1 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2012/8/7 下午 03:31:36
1.首先你得用管理帳號(system/sys 都可)建一個唯讀使用者,例如:edward,並只給它create session,create synonym 權限就好

create user edward
identified by xxxxxxxx
default tablespace mesdata
temporary tabelspace temp;

grant create session to edward;
grant create synonym to edward;



2.接下來登入 mes(table owner) 並授權 select 權限給 edward


connect mes/mes

用以下指令產生grant select的script(這指令會找出所有mes的table,你可以挑選要授權的table去執行),不需要有 with grant option (因為這樣被授權的帳號變成可以授權給別人)

set linesize 200
set headoff
set pagesize 1000
set feedback off
set verify off

spool d:\grant_select_to_edward.sql
select 'grant select on '||table_name||' to edward;' from user_tables;
spool off

@d:\grant_select_to_edward.sql



為 edward 建立同義字(不建的話也可,但 edward要查詢 mes 的 table,必須要前置 mes.名稱才能查詢 : 例如: mes.member mes.account ..等等)

spool d:\create_synonym_for_edward.sql
select 'create synonym '||table_name||' for mes.'||table_name||';' from user_tables;
spool off

exit




3.登入 edward 後建同義字,這樣就完成了


connect edward/xxxxxxxx
@d:\create_synonym_for_edward.sql



4.另外, tablespace 是一個儲存 table,index...等等物件的空間
 板主 : 徵求中
 > Oracle - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - Oracle - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
Oracle
1 Ricky 3260 
2 HKLN.net 1650 
3 falcon 300 
4 Leon Chou 230 
5 180 
6 sunnychen 100 
7 凡人 90 
8 SAP 80 
9 萬惡我為首 80 
10 阿德 80 
Oracle
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2017 程式設計俱樂部 http://www.programmer-club.com.tw/
0.03125