台灣最大程式設計社群網站
線上人數
584
 
會員總數:246044
討論主題:189631
歡迎您免費加入會員
討論區列表 >> Oracle >> 請問 Oracle DBA 一個問題.
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
請問 Oracle DBA 一個問題.
價值 : 10 QP  點閱數:3134 回應數:3
樓主

Doraemon
門外漢
0 1
12 1
發送站內信

最近在公司, 跟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呢?
謝謝您~

本篇文章發表於2012-06-25 10:29
1樓
最有價值解答

花旗蔘
檢舉此回應
1'非常簡要說明一下
tablespace為物件 ex:table 的存放位置,而tablespace 會對應 實體的datafile,
建立物件時可以指定其存放的tablespace
ex:
create table benchen.ppp(a int) tablespace xyz;
create table benchen.ttt(a int); ---不指定 就依預設值

但存取物件時,不須也不能指定 tablespace這階層
不像ms sql 的三段語法 db.schemas(2k5+)/owner(2k).object
oracle 是為owner.object

2'語法流程給你參考
-----以高權限者登入

----a.建立user
create user ben identified by ben;

----b.grant create session
grant create session to ben;

----c'將位於tablespace:XYZ 下的table,grant select 權限 給ben

--set serveroutput on
declare cursor c1
is
select 'grant select on '||owner||'.'||table_name||' to ben' grantsql
from dba_tables
where tablespace_name='XYZ';
begin
for crow in c1
loop
--dbms_output.put_line(crow.grantsql);
execute immediate crow.grantsql;
end loop;
end;
------------------------------
本篇文章回覆於2012-06-25 17:12
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

花旗蔘
檢舉此回應
---補充
1、你原文裡的create user語句
有指定以下參數
default tablespace mesdata
quota 50M on mesdata

以你的例子來說 僅是select only的帳號, 是不用特別指定這些參數,
但加了也無妨啦!

2、你原文裡的 grant select 語句
有指定with grant option
這參數的意思為 "再授與"
也就是說 你除了 授與這權限給該user 也授與了 該user可以授與此權限給它人
很撓舌吧
換句話說 就像 "二房東"
ex:你租房子給ben 也同意ben 可以把房子再轉租給別人!!

以你的例子來說 僅是select only的帳號 這參數是不必加的!
本篇文章回覆於2012-06-25 17:59
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

Doraemon
檢舉此回應
好感謝您~
本篇文章回覆於2012-06-25 18:31
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.