無論何時建立資料庫對象,都會為其配置設定一個所有者,所有者通常是執行 create 語句的人。
對于大多數類型的對象,初始狀态是隻有所有者(或超級使用者)才能修改或删除對象。要允許其他角色或使用者使用它,必須為該使用者設定權限。
在 PostgreSQL 中,權限分為以下幾種:
SELECT
INSERT
UPDATE
DELETE
TRUNCATE
REFERENCES
TRIGGER
CREATE
CONNECT
TEMPORARY
EXECUTE
USAGE
根據對象的類型(表、函數等),将指定權限應用于該對象。
要向使用者配置設定權限,可以使用 GRANT 指令。
GRANT 指令的基本文法如下:
privilege − 值可以為:SELECT,INSERT,UPDATE,DELETE, RULE,ALL。
object − 要授予通路權限的對象名稱。可能的對象有: table, view,sequence。
PUBLIC − 表示所有使用者。
GROUP group − 為使用者組授予權限。
username − 要授予權限的使用者名。PUBLIC 是代表所有使用者的簡短形式。
另外,我們可以使用 REVOKE 指令取消權限,REVOKE 文法:
為了了解權限,建立一個使用者:
資訊 CREATE ROLE 表示建立了一個使用者 "runoob"。
建立 COMPANY 表(下載下傳 COMPANY SQL 檔案 ),資料内容如下:
現在給使用者 "runoob" 配置設定權限:
資訊 GRANT 表示所有權限已經配置設定給了 "runoob"。
下面撤銷使用者 "runoob" 的權限:
資訊 REVOKE 表示已經将使用者的權限撤銷。
你也可以删除使用者:
資訊 DROP ROLE 表示使用者 "runoob" 已經從資料庫中删除。