本文記述在postgreSQL中對用戶/角色操作庫、模式、表、序列、函數、存儲過程的權限管理
針對數據庫的授權
授權:grant 權限 on database 數據庫 to 用戶/角色;
撤權:revoke 權限 on database 數據庫 from 用戶/角色;
針對模式的授權
授權:grant 權限 on schema 模式 to 用戶/角色; – 針對單模式授權
撤權:revoke 權限 on schema 模式 from 用戶/角色; – 針對單模式撤權
針對表的授權
授權:grant 權限 on 模式.表 to 用戶/角色; – 針對選定表,如grant select on public.order, grade to admin
grant 權限 on all tables in schema 模式 to 用戶/角色; – 針對全部表
撤權:revoke 權限 on all tables in schema 模式 from 用戶/角色; – 針對全部表
revoke 權限 on 模式.表 from 用戶/角色; – 針對選定表
針對序列的授權
授權:grant 權限 on sequence 序列 to 用戶/角色; – 單個序列授權,一般是all權限
grant 權限 on all sequences in schema 模式 to 用戶/角色; – 批量序列授權,一般是all權限
撤權:revoke 權限 on sequence 序列 from 用戶/角色; – 單個序列撤權,一般是all權限
revoke 權限 on all sequences in schema 模式 to 用戶/角色; – 批量序列撤權,一般是all權限
針對函數授權
授權:grant 權限 on function 函數名(參數類型列表) to 用戶/角色; – 單個函數授權,一般是execute權限
grant 權限 on all functions in schema 模式 to 用戶/角色; – 批量函數授權,一般是execute權限
撤權:revoke 權限 on function 函數名(參數類型列表) from 用戶/角色; – 單個函數撤權
? revoke 權限 on all functions in schema 模式 from 用戶/角色; – 批量函數撤權
針對存儲過程授權
授權:grant 權限 on procedure 存儲過程名(參數類型列表) to 用戶/角色; – 單個存儲過程授權,一般是execute權限
grant 權限 on all procedures in schema 模式 from 用戶/角色; – 批量存儲過程授權,一般是execute權限
撤權:revoke 權限 on procedure 存儲過程名(參數類型列表) from 用戶/角色; – 單個存儲過程撤權,一般是execute權限
revoke 權限 on all procedures in schema 模式 from 用戶/角色; – 批量存儲過程撤權
權限
表table權限
- select:查詢表中數據權限
- insert:向表中插入數據權限
- update:修改表中數據權限(需先有 select 權限)
- delete:刪除表中數據權限
- truncate:清空全表權限(比 delete 更高效,但不可回滾)
- references:創建指向該表的外鍵約束權限(用于關聯其他表)
- trigger:在表上創建或啟用觸發器權限
- all privileges:上述權限集合
模式schema權限
- create 在模式下創建對象(表,視圖,自定義函數,觸發器等)的權限
- usage 訪問模式內的對象權限
- all privileges 上述權限集合
數據庫database權限
- create 在數據庫中創建新的模式權限
- connect 連接數據庫權限
- temporary/temp 創建臨時表權限
- all privileges 上述權限集合
序列權限
- usage 允許使用nextval()和setval()函數
- select 允許查詢序列當前值currval()函數
- update 允許修改序列屬性(如重置起始值)
- all 上述權限集合
函數權限
- execute 執行權限,允許用戶調用并執行函數
- create 創建權限,允許用戶創建函數
- alter 修改權限,允許用戶修改函數
- drop 刪除權限,允許用戶刪除函數
- debug 調試權限,允許用戶查看存儲過程的源代碼,但不能執行或修改
- references 引用權限,允許在函數中引用其他對象(如跨表查詢),但非直接執行權
存儲過程權限
- execute 執行權限,允許用戶調用并執行存儲過程
- create 創建權限,允許用戶創建新的存儲過程
- alter 修改權限,允許用戶修改存儲過程
- drop 刪除權限,允許用戶刪除存儲過程
- debug 調試權限,允許用戶查看存儲過程的源代碼,但不能執行或修改
- usage 引用權限,允許用戶引用存儲過程(如在其他過程中調用),但不包含執行權