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
而Oracle 的設計是不太一樣的。Oracle 的資料庫相當的「高級」,幾乎等同於 SQL Server 的 Instance,因此system level 的 privileges 直接設在 database level。
雖然 Oracle 也可以安裝多個 instance 在同一個 server,但幾乎沒人這麼做,因為一個 instance 就會把伺服器的資源吃完了。
Oracle 資料庫內建的 role 有 connect, resource等,其實已經是相當大的權限了。例如 conect 就有 create table 的權限。
不知道 SQL Server database levle 的 role : db_datareader,在Oracle 上要如何設定呢?
從 Google 搜尋後,得到了如下的 answer
grant select any table to myUser但是,這仍然只是近似的方法,並非等同的sql server 的 db_datareader 的權限。
沒有留言:
張貼留言