| PostgreSQL 8.0.0 中文文件(轉譯自 PostgreSQL 中國 製作的簡體中文版本) | ||||
|---|---|---|---|---|
| Prev | Fast Backward | Chapter 17. 資料庫用戶和權限 | Fast Forward | Next |
當建立一個資料庫對像時,它屬於一個用戶。該用戶就是執行建立命令的那位。 要改變一個資料表,索引,序列,或者視圖的所有者,使用 ALTER TABLE 命令。 預設時,只有所有者(或者超級用戶)可以對該對像做任何事情。為了讓別的用戶也能用它,必須賦予那些用戶權限。
我們有以下幾種權限:SELECT(讀), INSERT(追加), UPDATE(寫),DELETE, RULE(規則),REFERENCES(外鍵), TRIGGER, CREATE,TEMPORARY,EXECUTE, USAGE,和 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;
資料表所有者的特殊權限(也就是說,做 DROP,GRANT, REVOKE 等等的權限)總是隱含給所有者的,並且不能賦予或者刪除。 但是資料表所有者可以廢除他的普通權限,比如給自己做一個只讀的資料表,就像給別人做一樣。