2008年8月20日 星期三

Oracle 學習(2) Role 的權限

Oracle資料庫是相當大的層級,而與SQL Server 的層級不太相同。
例如,SQL Server 的層級是 Instance-Database-Schema-Securable

像是 server.myDB.mySchema.myTable

系統層級的權限,會設定在 instance 層級上,而資料庫層級的權限,則會在 database 層級上。因此,會有sysadmin (instance level role, 即server role) 及 db_owner (database level role) 會如此的類似。見之前的文章 db_owner 與 database owner

image image image

而Oracle 的設計是不太一樣的。Oracle 的資料庫相當的「高級」,幾乎等同於 SQL Server 的 Instance,因此system level 的 privileges 直接設在 database level。
雖然 Oracle 也可以安裝多個 instance 在同一個 server,但幾乎沒人這麼做,因為一個 instance 就會把伺服器的資源吃完了。

Oracle 資料庫內建的 role 有 connect, resource等,其實已經是相當大的權限了。例如 conect 就有 create table 的權限。
image
不知道 SQL Server database levle 的 role : db_datareader,在Oracle 上要如何設定呢?
從 Google 搜尋後,得到了如下的 answer

grant select any table to myUser
但是,這仍然只是近似的方法,並非等同的sql server 的 db_datareader 的權限。

沒有留言:

Share with Facebook