好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > PostgreSQL 實現快速刪除一個用戶

PostgreSQL 實現快速刪除一個用戶

熱門標簽:漯河外呼電話系統 海豐有多少商家沒有地圖標注 地圖標注和圖片名稱的區別 重慶自動外呼系統定制 辦公外呼電話系統 外呼調研系統 合肥公司外呼系統運營商 打電話智能電銷機器人授權 美容工作室地圖標注

背景

在多租戶場景或者其他場景下,很多時候需要主動清理一些用戶,本文將介紹PostgreSQL 下如何快速刪除一個用戶(role)。

具體方法

一般情況下直接執行 drop role xxx; 就可以把這個用戶刪除。但是很多時候會因為用戶有依賴而報錯。

權限依賴

postgres=# create role test with login;
CREATE ROLE
postgres=# grant all on database postgres to test;
GRANT
postgres=# drop role test;
ERROR: role "test" cannot be dropped because some objects depend on it
DETAIL: privileges for database postgres

可以看出,因為我們把數據庫postgres 的權限賦予了test 用戶,所以直接刪除的時候會報錯。面對這種情況,我們需要先將role 的權限所有的權限全部revoke 掉,如下:

postgres=# revoke all on database postgres from test;
REVOKE
postgres=# drop role test;
DROP ROLE

注意:需要把該用戶在所有數據庫具有權限的所有數據庫對象的(表,視圖,SEQUENCE)權限全部回收,才能刪除該用戶。

對象依賴

postgres=# create role test with login;
CREATE ROLE
postgres=# \c - test
You are now connected to database "postgres" as user "test".
postgres=> create table test (id int);
CREATE TABLE
postgres=# \c - postgres
You are now connected to database "postgres" as user "postgres".
postgres=# drop role test;
ERROR: role "test" cannot be dropped because some objects depend on it
DETAIL: owner of table test

可以看出,因為test 用戶是test 表的owner,所以刪除的時候報錯owner of table test。如果不需要保留該對象,則需要先把該依賴對象刪除。如果需要保留該對象,則應該在刪除之前先把owner 賦予別人,如下:

postgres=# alter table test OWNER TO postgres;
ALTER TABLE
postgres=# drop role test;
DROP ROLE

注意:需要把該用戶在所有數據庫具有owner 權限的所有數據庫對象(表,視圖,SEQUENCE)刪除或者執行alter xx owner to,才能刪除該用戶。

更牛逼的方法

如果不保留owner 的數據庫對象

postgres=# REASSIGN OWNED BY test TO postgres;
REASSIGN OWNED
postgres=# DROP OWNED BY test;
DROP OWNED
postgres=# drop role test;
DROP ROLE

如果保留owner 的數據庫對象

postgres=# REASSIGN OWNED BY test TO postgres;
REASSIGN OWNED
postgres=# drop role test;
DROP ROLE

注意:REASSIGN OWNED 需要執行者所屬的role (或者子集)必須包含test 和postgres 或者是superuser。另外必須所有涉及到的數據庫上都執行該以上語句才能刪除用戶。

補充:PostgreSQL數據庫創建/刪除

方法1 - 系統命令

sudo su - postgres #切換到postgres用戶(系統用戶)
createdb weichen #創建數據庫
psql #直接訪問數據庫(默認進入本地postgres數據庫)
\l --查看數據庫列表
:q --退出列表頁面
\q --退出客戶端
dropdb weichen #刪除數據庫

方法2 - psql命令行

sudo -u postgres psql #登錄客戶端
create database weichen; --創建數據庫
create database sz owner postgres; --創建數據庫
select oid,datname from pg_database; --查看數據庫列表
drop database weichen; --刪除數據庫
drop database sz; --刪除數據庫

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • postgresql 刪除重復數據的幾種方法小結
  • PostgreSQL 刪除check約束的實現
  • postgresql刪除主鍵的操作
  • postgresql 實現多表關聯刪除
  • Postgresql創建新增、刪除與修改觸發器的方法
  • PostgreSQL刪除更新優化操作
  • mybatis postgresql 批量刪除操作方法
  • postgresql 刪除重復數據案例詳解

標簽:來賓 錦州 蚌埠 衡陽 烏海 晉城 珠海 株洲

巨人網絡通訊聲明:本文標題《PostgreSQL 實現快速刪除一個用戶》,本文關鍵詞  PostgreSQL,實現,快速,刪除,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PostgreSQL 實現快速刪除一個用戶》相關的同類信息!
  • 本頁收集關于PostgreSQL 實現快速刪除一個用戶的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 99国产精品人妻无码免费农村| 日批视频下载| 日韩欧美无线在码| 美女下部隐私无遮挡图| 40岁的寡妇下面紧不紧| 欧美日韩精品福利在线观看 | 337p亚洲欧洲色噜噜噜| 国产精品爽爽va免费观看| 日本不卡一区二区| 在线视频91| 男人桶女人桶到爽免费软件 | 热久久最新地址| 黄色性小说| 好大用力深一点视频| 可以免费观看的A片| 夜夜爽夜夜操| 在线丨暗u小u女国产精品免费| 欧美熟妇vivoe精品| 欧美强伦在线观看| 涩涩成人免费视频| 米奇7777狠狠狠狠视频AV| 又硬又粗进去好爽A片麻豆网站| 婚前试爱18分钟圆房床戏视频| 死神来了6电影完整免费观看| 国产三级农村妇女系列| 美女乳房视频| 五月色综合网欧美久久| 男女野外激情| 国产一区二区三区日韩欧美| 把腿开到大点就不疼了| 中文字幕在线2018| 99热婷婷一区二区三区蜜月Av| 久久精品99毛片免费| 69日本xxxxxxxxx69| a香蕉18女wwW毛片最高级| 快穿之肉肉辣文np| 永德县| 国产亚洲区| 宝宝下面都拉丝了h| 日韩性视频网站| 没戴套让他C了一天|