| PostgreSQL 7.4 文檔 | ||||
|---|---|---|---|---|
| Prev | Fast Backward | Chapter 5. 數據定義 | Fast Forward | Next |
如果你創建了一個數據庫對象,那麼你就成為它的所有者。 缺省時,只有一個對象的所有者可以在對象上做任何事情。 為了允許其它用戶使用它,我們必須賦予他們權限。 (還有擁有超級用戶權限的用戶。這些用戶總是可以訪問任何對象。)
注意: 為了改變一個表,索引,序列,或者視圖的所有者, 使用 ALTER TABLE 命令。
有好幾種不同的權限:SELECT,INSERT, UPDATE,DELETE,RULE, REFERENCES,TRIGGER,CREATE, TEMPORARY,EXECUTE,USAGE, 和 ALL PRIVILEGES。有關 PostgreSQL 所支持的不同類型的權限的完整信息,請參考 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,等等的權限)總是隱含地屬于所有者,並且不能 賦予或者撤銷。但是表所有者可以選擇撤銷自己的普通權限, 比如把一個表做成對他自己和別人都是只讀的。