17.4. 權限

當建立一個資料庫對像時,它屬於一個用戶。該用戶就是執行建立命令的那位。 要改變一個資料表,索引,序列,或者視圖的所有者,使用 ALTER TABLE 命令。 預設時,只有所有者(或者超級用戶)可以對該對像做任何事情。為了讓別的用戶也能用它,必須賦予那些用戶權限

我們有以下幾種權限:SELECT(讀), INSERT(追加), UPDATE(寫),DELETERULE(規則)REFERENCES(外鍵), TRIGGERCREATETEMPORARYEXECUTEUSAGE,和 ALL PRIVILEGES。 有關PostgreSQL所支援的權限的更多訊息, 請參閱 Part VI 裡面的 GRANT 頁獲取更多詳細的訊息。 修改或者刪除一個對象的權限總是只有該對象的所有者才有。 要賦予權限,必需使用 GRANT 命令。 要賦權限,用GRANT命令。因此,如果 joe 是一個現存用戶,而 accounts是一個現存資料表,那麼可以這樣賦予更新權限

GRANT UPDATE ON accounts TO joe;

執行這條命令的用戶必須是資料表的所有者。要給一個組賦權限,用

GRANT SELECT ON accounts TO GROUP staff;

特殊的"用戶"PUBLIC可以用於給系統中的每一個用戶賦權限。 寫 ALL 在權限聲明位置上資料表明賦予所有權限。

要廢除一個權限,用 REVOKE 命令:

REVOKE ALL ON accounts FROM PUBLIC;

資料表所有者的特殊權限(也就是說,做 DROPGRANTREVOKE 等等的權限)總是隱含給所有者的,並且不能賦予或者刪除。 但是資料表所有者可以廢除他的普通權限,比如給自己做一個只讀的資料表,就像給別人做一樣。