PostgreSQL 10.1 手册_部分 II. SQL 语言_第 5 章 数据定义_5.6. 权限
5.6.?權限
一旦一個對象被創建,它會被分配一個所有者。所有者通常是執行創建語句的角色。對于大部分類型的對象,初始狀態下只有所有者(或者超級用戶)能夠對該對象做任何事情。為了允許其他角色使用它,必須分配權限。
有多種不同的權限:SELECT、INSERT、UPDATE、DELETE、TRUNCATE、REFERENCES、TRIGGER、CREATE、CONNECT、TEMPORARY、EXECUTE以及USAGE。可以應用于一個特定對象的權限隨著對象的類型(表、函數等)而不同。PostgreSQL所支持的不同類型的完整權限信息請參考GRANT。下面的章節將簡單介紹如何使用這些權限。
修改或銷毀一個對象的權力通常是只有所有者才有的權限。
一個對象可以通過該對象類型相應的ALTER命令來重新分配所有者,例如ALTER TABLE。超級用戶總是可以做到這點,普通角色只有同時是對象的當前所有者(或者是擁有角色的一個成員)以及新擁有角色的一個成員時才能做同樣的事。
要分配權限,可以使用GRANT命令。例如,如果joe是一個已有角色,而accounts是一個已有表,更新該表的權限可以按如下方式授權:
GRANT UPDATE ON accounts TO joe;用ALL取代特定權限會把與對象類型相關的所有權限全部授權。
一個特殊的名為PUBLIC的“角色”可以用來向系統中的每一個角色授予一個權限。同時,在數據庫中有很多用戶時可以設置“組”角色來幫助管理權限。詳見第?21?章。
為了撤銷一個權限,使用REVOKE命令:
REVOKE ALL ON accounts FROM PUBLIC;對象擁有者的特殊權限(即執行DROP、GRANT、REVOKE等的權力)總是隱式地屬于擁有者,并且不能被授予或撤銷。但是對象擁有者可以選擇撤銷他們自己的普通權限,例如把一個表變得對他們自己和其他人只讀。
一般情況下,只有對象擁有者(或者超級用戶)可以授予或撤銷一個對象上的權限。但是可以在授予權限時使用“with grant option”來允許接收人將權限轉授給其他人。如果后來授予選項被撤銷,則所有從接收人那里獲得的權限(直接或者通過授權鏈獲得)都將被撤銷。更多詳情請見GRANT和REVOKE參考頁。
本文轉自PostgreSQL中文社區,原文鏈接:5.6.?權限
總結
以上是生活随笔為你收集整理的PostgreSQL 10.1 手册_部分 II. SQL 语言_第 5 章 数据定义_5.6. 权限的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 8、clone使用和数组列表的copy
- 下一篇: 670. 最大交换