您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關postgresql中有哪些用戶權限,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
PostgreSQL PRIVILEGES(權限)
無論何時創建數據庫對象,都會為其分配一個所有者,所有者通常是執行 create 語句的人。
對于大多數類型的對象,初始狀態是只有所有者(或超級用戶)才能修改或刪除對象。要允許其他角色或用戶使用它,必須為該用戶設置權限。
在 PostgreSQL 中,權限分為以下幾種:
·SELECT
·INSERT
·UPDATE
·DELETE
·TRUNCATE
·REFERENCES
·TRIGGER
·CREATE
·CONNECT
·TEMPORARY
·EXECUTE
·USAGE
根據對象的類型(表、函數等),將指定權限應用于該對象。
要向用戶分配權限,可以使用 GRANT 命令。
GRANT 語法
GRANT 命令的基本語法如下:
GRANT privilege [, ...] ON object [, ...] TO { PUBLIC | GROUP group | username }
·privilege ? 值可以為:SELECT,INSERT,UPDATE,DELETE, RULE,ALL。
·object ? 要授予訪問權限的對象名稱。可能的對象有: table, view,sequence。
·PUBLIC ? 表示所有用戶。
·GROUP group ? 為用戶組授予權限。
·username ? 要授予權限的用戶名。PUBLIC 是代表所有用戶的簡短形式。
另外,我們可以使用 REVOKE 命令取消權限,REVOKE 語法:
REVOKE privilege [, ...] ON object [, ...] FROM { PUBLIC | GROUP groupname | username }
實例
為了理解權限,創建一個用戶:
runoobdb=# CREATE USER runoob WITH PASSWORD 'password'; CREATE ROLE
信息 CREATE ROLE 表示創建了一個用戶 "runoob"。
實例
創建 COMPANY 表(下載 COMPANY SQL 文件 ),數據內容如下:
runoobdb# select * from COMPANY; id | name | age | address | salary ----+-------+-----+-----------+-------- 1 | Paul | 32 | California| 20000 2 | Allen | 25 | Texas | 15000 3 | Teddy | 23 | Norway | 20000 4 | Mark | 25 | Rich-Mond | 65000 5 | David | 27 | Texas | 85000 6 | Kim | 22 | South-Hall| 45000 7 | James | 24 | Houston | 10000 (7 rows)
現在給用戶 "runoob" 分配權限:
runoobdb=# GRANT ALL ON COMPANY TO runoob; GRANT
信息 GRANT 表示所有權限已經分配給了 "runoob"。
下面撤銷用戶 "runoob" 的權限:
runoobdb=# REVOKE ALL ON COMPANY FROM runoob; REVOKE
信息 REVOKE 表示已經將用戶的權限撤銷。
你也可以刪除用戶:
runoobdb=# DROP USER runoob; DROP ROLE
信息 DROP ROLE 表示用戶 "runoob" 已經從數據庫中刪除。
關于postgresql中有哪些用戶權限就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。