| PostgreSQL 7.4 文檔 | ||||
|---|---|---|---|---|
| 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 等等的權限)總是隱含給所有者的,並且不能賦予或者刪除。 但是表所有者可以廢除他的普通權限,比如給自己做一個只讀的表,就象給別人做一樣。