Pendahuluan
Mengelola database memerlukan penghapusan akun pengguna, terutama jika akun pengguna tidak lagi diperlukan. Menghapus pengguna Postgres yang tidak perlu adalah praktik keamanan database yang penting. Tindakan ini juga menghapus titik akses yang berpotensi tidak terlihat oleh peretas.
Tutorial ini menjelaskan cara menghapus pengguna Postgres dalam berbagai cara.
Prasyarat
- Akses ke baris perintah atau terminal dengan hak istimewa sudo.
- Postgres diinstal, sebaiknya versi terbaru.
- Pengguna postgres untuk dijatuhkan. Ikuti tutorial kami untuk membuat pengguna Postgres untuk tujuan pengujian.
Menghapus Pengguna Postgres
Seorang pengguna di PostgreSQL memiliki hak login secara default. Ada dua metode untuk menghapus pengguna, dan keduanya memerlukan akses ke CREATEROLE
hak. Untuk menjatuhkan superuser, SUPERUSER
keistimewaan adalah wajib.
postgres pengguna yang dibuat selama instalasi memiliki semua hak istimewa yang diperlukan secara default. Contoh di bawah ini menggunakan postgres pengguna untuk terhubung ke PostgreSQL.
Metode 1:Menghapus Pengguna Postgres Dengan Utilitas dropuser
Postgres menawarkan utilitas klien untuk menghapus pengguna tanpa menghubungkan ke antarmuka baris perintah PSQL.
Untuk menghapus pengguna di Postgres dengan dropuser
, jalankan perintah berikut di terminal:
sudo -u postgres dropuser <user> -e
Atau, bagi perintah menjadi dua langkah:
1. Beralih ke postgres pengguna (atau pengguna lain dengan hak istimewa yang benar):
sudo su - postgres
2. Jalankan perintah dropuser:
dropuser <name> -e
Dalam kedua kasus, Postgres menghapus pengguna.
Metode 2:Menghapus Pengguna Postgres Dengan Pernyataan DROP USER
Cara lain untuk menghapus pengguna dari database Postgres adalah menggunakan pernyataan PSQL.
Untuk menghapus pengguna, ikuti langkah-langkah di bawah ini:
1. Hubungkan ke klien PSQL melalui terminal dengan perintah berikut:
sudo -u postgres psql
Terminal berubah menjadi konsol PSQL (postgres=#
).
2. Buat daftar semua pengguna dan peran dengan:
\du
Temukan pengguna yang akan dihapus dan gunakan nama tersebut pada langkah berikut.
3. Jalankan kueri berikut untuk menghapus pengguna:
DROP USER <name>;
Atau, untuk memeriksa apakah ada pengguna sebelum berhenti, masukkan:
DROP USER IF EXISTS <name>;
Klien memberi tahu jika perannya tidak ada.
4. Tampilkan lagi daftar pengguna untuk mengonfirmasi bahwa pengguna telah tiada:
\du
Pengguna tidak lagi ada dalam daftar peran. Output ini menunjukkan penghapusan yang berhasil.
Hapus Beberapa Pengguna Postgres
Klien PSQL memungkinkan menghapus lebih dari satu pengguna Postgres sekaligus. Petunjuk di bawah ini menjelaskan cara menghubungkan ke klien PostgreSQL dan menghapus banyak pengguna.
1. Hubungkan ke klien PSQL dengan:
sudo -u postgres psql
2. Daftar semua pengguna dengan:
\du
Temukan pengguna yang akan dihapus dan gunakan nama pada langkah berikut.
3. Hapus beberapa pengguna Postgres dengan memisahkan pengguna individu dengan koma:
DROP USER [IF EXISTS] <name>, <name>, ... <name>;
Perintah menghapus beberapa peran sekaligus. Tambahkan IF EXISTS
untuk melewati pengguna yang tidak tersedia.
4. Periksa kembali daftar pengguna untuk memastikan semua peran telah dihapus:
\du
Pengguna yang dihapus tidak lagi ada dalam daftar.
Menghapus Pengguna Postgres dengan Ketergantungan
Mencoba menghapus pengguna Postgres dengan dependensi gagal dan menunjukkan kesalahan.
Untuk menghapus pengguna dengan aman, lakukan hal berikut:
1. Tetapkan kepemilikan objek dari detail kesalahan ke pengguna lain. Misalnya, untuk mentransfer objek yang dimiliki oleh pengguna saya ke postgres , jalankan:
REASSIGN OWNED BY myuser TO postgres;
Kueri mengubah kepemilikan objek menjadi postgres pengguna.
2. Hapus koneksi objek database ke pengguna dengan:
DROP OWNED BY myuser;
Langkah ini juga menghapus semua hak istimewa yang dimiliki pengguna atas objek tersebut.
3. Saat ini, pengguna tidak lagi memiliki ketergantungan. Untuk menjatuhkan pengguna, jalankan:
DROP USER myuser;
Karena tidak ada ketergantungan, penghapusan berhasil.
Menghapus Peran Postgres
Untuk menghapus peran Postgres, jalankan perintah berikut di klien PSQL:
DROP ROLE [IF EXISTS] <name>;
DROP USER
pernyataan adalah alias untuk DROP ROLE
. Pengguna Postgres adalah peran dengan LOGIN
izin. Oleh karena itu, keduanya DROP USER
dan DROP ROLE
dapat dipertukarkan dan berfungsi untuk pengguna dan peran.