PostgreSQL:許可權管理
許可權說明
-
SELECT:允許從指定表,檢視或序列的任何列或列出的特定列進行SELECT。也允許使用COPY TO。在UPDATE或DELETE中引用現有列值也需要此許可權。對於序列,此許可權還允許使用currval函式。對於大物件,此許可權允許讀取物件。
-
INSERT:允許將新行INSERT到指定的表中。如果列出了特定列,則只能在INSERT命令中為這些列分配(因此其他列將接收預設值)。也允許COPY FROM。
-
UPDATE:允許更新指定表的任何列或列出的特定列,需要SELECT許可權。
-
DELETE:允許刪除指定表中的行,需要SELECT許可權。
-
TRUNCATE:允許在指定的表上建立觸發器。
-
REFERENCES:允許建立引用指定表或表的指定列的外來鍵約束。
-
TRIGGER:允許在指定的表上建立觸發器。
-
CREATE:對於資料庫,允許在資料庫中建立新的schema、table、index。
-
CONNECT:允許使用者連線到指定的資料庫。在連線啟動時檢查此許可權。
-
TEMPORARY、TEMP:允許在使用指定資料庫時建立臨時表。
-
EXECUTE:允許使用指定的函式或過程以及在函式。
-
USAGE:對於schema,允許訪問指定模式中包含的物件;對於sequence,允許使用currval和nextval函式。對於型別和域,允許在建立表,函式和其他模式物件時使用型別或域。
-
ALL PRIVILEGES:一次授予所有可用許可權。
授權
GRANT { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | TRIGGER } [, ...] | ALL [ PRIVILEGES ] } ON { [ TABLE ] table_name [, ...] | ALL TABLES IN SCHEMA schema_name [, ...] } TO role_specification [, ...] [ WITH GRANT OPTION ] -- 單表授權:授權zjy賬號可以訪問schema為zjy的zjy表 grant select,insert,update,delete on zjy.zjy to zjy; -- 所有表授權: grant select,insert,update,delete on all tables in schema zjy to zjy; GRANT { { SELECT | INSERT | UPDATE | REFERENCES } ( column_name [, ...] ) [, ...] | ALL [ PRIVILEGES ] ( column_name [, ...] ) } ON [ TABLE ] table_name [, ...] TO role_specification [, ...] [ WITH GRANT OPTION ] -- 列授權,授權指定列(zjy schema下的zjy表的name列)的更新許可權給zjy使用者 grant update (name) on zjy.zjy to zjy; -- 指定列授不同許可權,zjy schema下的zjy表,檢視更新name、age欄位,插入name欄位 grant select (name,age),update (name,age),insert(name) on zjy.xxx to zjy; GRANT { { USAGE | SELECT | UPDATE } [, ...] | ALL [ PRIVILEGES ] } ON { SEQUENCE sequence_name [, ...] | ALL SEQUENCES IN SCHEMA schema_name [, ...] } TO role_specification [, ...] [ WITH GRANT OPTION ] -- 序列(自增鍵)屬性授權,指定zjy schema下的seq_id_seq 給zjy使用者 grant select,update on sequence zjy.seq_id_seq to zjy; -- 序列(自增鍵)屬性授權,給使用者zjy授權zjy schema下的所有序列 grant select,update on all sequences in schema zjy to zjy; GRANT { { CREATE | CONNECT | TEMPORARY | TEMP } [, ...] | ALL [ PRIVILEGES ] } ON DATABASE database_name [, ...] TO role_specification [, ...] [ WITH GRANT OPTION ] -- 連線資料庫許可權,授權cc使用者連線資料庫zjy grant connect on database zjy to cc; GRANT { USAGE | ALL [ PRIVILEGES ] } ON DOMAIN domain_name [, ...] TO role_specification [, ...] [ WITH GRANT OPTION ] GRANT { USAGE | ALL [ PRIVILEGES ] } ON FOREIGN DATA WRAPPER fdw_name [, ...] TO role_specification [, ...] [ WITH GRANT OPTION ] GRANT { USAGE | ALL [ PRIVILEGES ] } ON FOREIGN SERVER server_name [, ...] TO role_specification [, ...] [ WITH GRANT OPTION ] GRANT { EXECUTE | ALL [ PRIVILEGES ] } ON { { FUNCTION | PROCEDURE | ROUTINE } routine_name [ ( [ [ argmode ] [ arg_name ] arg_type [, ...] ] ) ] [, ...] | ALL { FUNCTIONS | PROCEDURES | ROUTINES } IN SCHEMA schema_name [, ...] } TO role_specification [, ...] [ WITH GRANT OPTION ] GRANT { USAGE | ALL [ PRIVILEGES ] } ON LANGUAGE lang_name [, ...] TO role_specification [, ...] [ WITH GRANT OPTION ] GRANT { { SELECT | UPDATE } [, ...] | ALL [ PRIVILEGES ] } ON LARGE OBJECT loid [, ...] TO role_specification [, ...] [ WITH GRANT OPTION ] GRANT { { CREATE | USAGE } [, ...] | ALL [ PRIVILEGES ] } ON SCHEMA schema_name [, ...] TO role_specification [, ...] [ WITH GRANT OPTION ] -- 連線schema許可權,授權cc訪問zjy schema許可權 grant usage on schema zjy to cc; GRANT { CREATE | ALL [ PRIVILEGES ] } ON TABLESPACE tablespace_name [, ...] TO role_specification [, ...] [ WITH GRANT OPTION ] GRANT { USAGE | ALL [ PRIVILEGES ] } ON TYPE type_name [, ...] TO role_specification [, ...] [ WITH GRANT OPTION ] where role_specification can be: [ GROUP ] role_name | PUBLIC | CURRENT_USER | SESSION_USER GRANT role_name [, ...] TO role_name [, ...] [ WITH ADMIN OPTION ] -- 把zjy使用者的許可權授予使用者cc。 grant zjy to cc;
撤銷許可權
REVOKE [ GRANT OPTION FOR ] { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | TRIGGER } [, ...] | ALL [ PRIVILEGES ] } ON { [ TABLE ] table_name [, ...] | ALL TABLES IN SCHEMA schema_name [, ...] } FROM { [ GROUP ] role_name | PUBLIC } [, ...] [ CASCADE | RESTRICT ] -- 移除使用者zjy在schema zjy上所有表的select許可權 revoke select on all tables in schema zjy from zjy; REVOKE [ GRANT OPTION FOR ] { { SELECT | INSERT | UPDATE | REFERENCES } ( column_name [, ...] ) [, ...] | ALL [ PRIVILEGES ] ( column_name [, ...] ) } ON [ TABLE ] table_name [, ...] FROM { [ GROUP ] role_name | PUBLIC } [, ...] [ CASCADE | RESTRICT ] -- 移除使用者zjy在zjy schema的zjy表的age列的查詢許可權 revoke select (age) on zjy.zjy from zjy; -- 序列 REVOKE [ GRANT OPTION FOR ] { { USAGE | SELECT | UPDATE } [, ...] | ALL [ PRIVILEGES ] } ON { SEQUENCE sequence_name [, ...] | ALL SEQUENCES IN SCHEMA schema_name [, ...] } FROM { [ GROUP ] role_name | PUBLIC } [, ...] [ CASCADE | RESTRICT ] -- 庫 REVOKE [ GRANT OPTION FOR ] { { CREATE | CONNECT | TEMPORARY | TEMP } [, ...] | ALL [ PRIVILEGES ] } ON DATABASE database_name [, ...] FROM { [ GROUP ] role_name | PUBLIC } [, ...] [ CASCADE | RESTRICT ] REVOKE [ GRANT OPTION FOR ] { USAGE | ALL [ PRIVILEGES ] } ON DOMAIN domain_name [, ...] FROM { [ GROUP ] role_name | PUBLIC } [, ...] [ CASCADE | RESTRICT] REVOKE [ GRANT OPTION FOR ] { USAGE | ALL [ PRIVILEGES ] } ON FOREIGN DATA WRAPPER fdw_name [, ...] FROM { [ GROUP ] role_name | PUBLIC } [, ...] [ CASCADE | RESTRICT] REVOKE [ GRANT OPTION FOR ] { USAGE | ALL [ PRIVILEGES ] } ON FOREIGN SERVER server_name [, ...] FROM { [ GROUP ] role_name | PUBLIC } [, ...] [ CASCADE | RESTRICT] REVOKE [ GRANT OPTION FOR ] { EXECUTE | ALL [ PRIVILEGES ] } ON { { FUNCTION | PROCEDURE | ROUTINE } function_name [ ( [ [ argmode ] [ arg_name ] arg_type [, ...] ] ) ] [, ...] | ALL { FUNCTIONS | PROCEDURES | ROUTINES } IN SCHEMA schema_name [, ...] } FROM { [ GROUP ] role_name | PUBLIC } [, ...] [ CASCADE | RESTRICT ] REVOKE [ GRANT OPTION FOR ] { USAGE | ALL [ PRIVILEGES ] } ON LANGUAGE lang_name [, ...] FROM { [ GROUP ] role_name | PUBLIC } [, ...] [ CASCADE | RESTRICT ] REVOKE [ GRANT OPTION FOR ] { { SELECT | UPDATE } [, ...] | ALL [ PRIVILEGES ] } ON LARGE OBJECT loid [, ...] FROM { [ GROUP ] role_name | PUBLIC } [, ...] [ CASCADE | RESTRICT ] -- schema許可權 REVOKE [ GRANT OPTION FOR ] { { CREATE | USAGE } [, ...] | ALL [ PRIVILEGES ] } ON SCHEMA schema_name [, ...] FROM { [ GROUP ] role_name | PUBLIC } [, ...] [ CASCADE | RESTRICT ] REVOKE [ GRANT OPTION FOR ] { CREATE | ALL [ PRIVILEGES ] } ON TABLESPACE tablespace_name [, ...] FROM { [ GROUP ] role_name | PUBLIC } [, ...] [ CASCADE | RESTRICT ] REVOKE [ GRANT OPTION FOR ] { USAGE | ALL [ PRIVILEGES ] } ON TYPE type_name [, ...] FROM { [ GROUP ] role_name | PUBLIC } [, ...] [ CASCADE | RESTRICT ] REVOKE [ ADMIN OPTION FOR ] role_name [, ...] FROM role_name [, ...] [ CASCADE | RESTRICT ]
注意:任何使用者對public的schema都有all的許可權,為了安全可以禁止使用者對public schema
-- 移除所有使用者(public),superuser 除外,對指定 DB 下的 public schema 的 create 許可權。 zjy=# revoke create on schema public from public; REVOKE
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31490526/viewspace-2742189/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- PostgreSQL資料庫使用者許可權管理SQL資料庫
- Linux-許可權管理(ACL許可權)Linux
- Mysql——許可權管理MySql
- Mysql 許可權管理MySql
- oracle 許可權管理Oracle
- 4、許可權管理
- sql許可權管理SQL
- 許可權管理策略
- MySQL許可權管理MySql
- django開發之許可權管理(一)——許可權管理詳解(許可權管理原理以及方案)、不使用許可權框架的原始授權方式詳解Django框架
- Linux 許可權管理之目錄許可權限制Linux
- Security 10:許可權管理
- SQL Server 許可權管理SQLServer
- 許可權管理[Linux]Linux
- MongoDB 3.0.8 許可權管理MongoDB
- PostgreSQL技術大講堂 - Part 8:PG物件許可權管理SQL物件
- 淺談PostgreSQL使用者許可權SQL
- postgresql關於許可權的總結SQL
- 【許可權管理】Oracle中檢視、回收使用者許可權Oracle
- PostgreSQL物件許可權如何在後設資料中獲取-許可權解讀、定製化匯出許可權SQL物件
- DRF內建許可權元件之自定義許可權管理類元件
- Android許可權管理之Permission許可權機制及使用Android
- .NET 程式許可權控制、獲得管理員許可權程式碼
- ylbtech-許可權管理-資料庫設計-功能許可權管理技術資料庫
- 如何檢視postgresql使用者許可權SQL
- PostgreSQL學習手冊(角色和許可權)SQL
- Android6.0------許可權申請管理(單個許可權和多個許可權申請)Android
- ThinkPHP5+許可權管理PHP
- MySQL許可權管理實戰MySql
- ubuntu 許可權管理設定Ubuntu
- 【JavaWeb】許可權管理系統JavaWeb
- Linux基本許可權管理Linux
- Oracle ERP許可權管理Oracle
- 賬號和許可權管理
- 關於mysql許可權管理MySql
- Mac 檔案許可權管理(桌面管理)Mac
- Oracle的物件許可權、角色許可權、系統許可權Oracle物件
- 許可權之選單許可權