GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Membuat Pengguna Postgres

Pendahuluan

Hak istimewa pengguna dan manajemen akses hak istimewa adalah konsep keamanan penting untuk semua jenis basis data. PostgreSQL menangani kontrol akses melalui peran dan hak istimewa. Misalnya, menambahkan izin LOGIN ke peran akan menghasilkan pengguna. Postgres menawarkan beberapa cara untuk membuat dan mengelola akun pengguna.

Tutorial ini menunjukkan cara membuat dan menyiapkan berbagai jenis pengguna untuk database PostgreSQL.

Prasyarat

  • Postgres diinstal (ikuti panduan kami untuk Ubuntu atau Windows).
  • Akses ke terminal dengan hak istimewa sudo.
  • Akses ke pengguna postgres.

Buat Pengguna Baru di PostgreSQL

Ada dua cara untuk membuat pengguna baru di PostgreSQL, dan kedua kasus memerlukan akses ke postgres pengguna.

Metode 1:Menggunakan Utilitas Klien createuser

Cara pertama untuk membuat pengguna baru adalah dengan createuser utilitas klien. Metode ini menghindari koneksi ke antarmuka baris perintah PSQL.

Untuk membuat pengguna, jalankan perintah berikut di terminal:

sudo -u postgres createuser <name>

Terminal tidak mengeluarkan pesan. Untuk menggemakan pesan server, tambahkan -e tag:

sudo -u postgres createuser -e <name>

Misalnya:

sudo -u postgres createuser -e john

Atau, bagi perintah menjadi dua bagian:

1. Beralih ke postgres pengguna:

sudo su - postgres

2. Jalankan createuser perintah:

createuser <name>

Postgres secara otomatis membuat pengguna (peran dengan izin masuk) dalam kedua kasus.

Metode 2:Menggunakan PSQL

Cara kedua untuk membuat pengguna baru di PostgreSQL adalah melalui shell PSQL interaktif.

1. Beralih ke postgres pengguna dan mulai terminal interaktif dengan:

sudo -u postgres psql

Sesi terminal berubah menjadi postgres=# , menunjukkan koneksi yang berhasil ke shell Postgres.

2. Gunakan pernyataan berikut untuk membuat pengguna:

CREATE USER <name>;

Misalnya:

CREATE USER mary;

Menjalankan perintah akan mencetak CREATE ROLE ke konsol. Alasannya adalah CREATE USER query adalah alias untuk perintah berikut:

CREATE ROLE <name> WITH LOGIN;

Kedua kueri menghasilkan hasil yang sama.

Buat Pengguna Super di PostgreSQL

Untuk membuat superuser di PostgreSQL, Anda harus memiliki peran superuser.

Peringatan: Superuser database melewati semua pemeriksaan, yang berbahaya dari aspek keamanan. Gunakan tindakan ini dengan hati-hati dan hindari bekerja dengan akun pengguna super kecuali benar-benar diperlukan.

Ada dua cara untuk membuat superuser di PostgreSQL:

1. Buat peran pengguna super melalui utilitas klien dengan menambahkan --superuser tag:

sudo -u postgres createuser --superuser <name>

Atau gunakan tag singkatan -s bukannya --superuser :

sudo -u postgres createuser -s <name>

Terminal mengeluarkan pesan jika terjadi kesalahan atau jika pengguna sudah ada. Jika berhasil, tidak ada pesan yang muncul.

2. Atau, gunakan CREATE USER Pernyataan PSQL:

CREATE USER <name> SUPERUSER;

CREATE USER pernyataan adalah alias untuk pernyataan berikut:

CREATE ROLE <name> LOGIN SUPERUSER;

CREATE ROLE pernyataan memerlukan penambahan LOGIN izin untuk meniru pengguna.

Buat Kata Sandi untuk Pengguna

Setiap pengguna database harus memiliki password yang kuat untuk mencegah serangan brute force. PostgreSQL menawarkan dua metode untuk membuat pengguna dengan kata sandi.

Peringatan: Dari dua metode, yang pertama lebih disukai dan lebih aman.

1. Gunakan createuser utilitas klien dan tambahkan --pwprompt opsi untuk memanggil prompt pembuatan kata sandi secara otomatis:

sudo -u postgres createuser <name> --pwprompt

Versi singkatannya adalah -P tag:

sudo -u postgres createuser <name> -P

Terminal meminta untuk memasukkan kata sandi dua kali. Kata sandi itu sendiri atau panjangnya dienkripsi dan disembunyikan saat berkomunikasi dengan server.

2. Gunakan PSQL untuk membuat pengguna dengan kata sandi:

CREATE USER <name> WITH PASSWORD '<password>';

Jika pengguna sudah ada, tambahkan kata sandi dengan menggunakan ALTER USER :

ALTER USER <name> WITH PASSWORD '<password>';

Manajemen kata sandi melalui PSQL hadir dengan tiga kerentanan keamanan:

  • Kata sandi terlihat di layar.
  • Melihat riwayat perintah akan membuka sandi.
  • Informasi dikirimkan sebagai teks yang jelas tanpa enkripsi apa pun.

Gunakan metode ini dengan hati-hati.

Berikan Hak Istimewa kepada Pengguna

Secara default, pengguna baru tidak memiliki hak istimewa apa pun kecuali untuk login. Untuk menambahkan hak istimewa saat membuat pengguna, jalankan createuser utilitas klien dalam format berikut:

createuser <option> <name>

Untuk melakukan hal yang sama di PSQL, jalankan:

CREATE USER <name> WITH <option>;

Di bawah ini adalah tabel dengan opsi yang umum digunakan untuk kedua metode.

Sintaks Opsi PSQL Penjelasan
-s
--superuser
SUPERUSER Tambahkan hak pengguna super.
-S
--no-superuser
NOSUPERUSER Tidak ada hak pengguna super (default).
-d
--createdb
CREATEDB Memungkinkan pengguna untuk membuat database.
-D
--no-createdb
NOCREATEDB Tidak diperbolehkan membuat database (default).
-r
--createrole
CREATEROLE Memungkinkan pengguna untuk membuat peran baru.
-R
--no-createrole
NOCREATEROLE Tidak diizinkan membuat peran (default).
-i
--inherit
INHERIT Otomatis mewarisi hak istimewa peran (default).
-I
--no-inherit
NOINHERIT Jangan mewarisi hak istimewa peran.
-l
--login
LOGIN Memungkinkan pengguna untuk masuk ke sesi dengan nama peran (default).
-L
--no-login
NOLOGIN Tidak diizinkan masuk ke sesi dengan nama peran.
--replication REPLICATION Memungkinkan memulai replikasi streaming dan mengaktifkan/menonaktifkan mode pencadangan.
--no-replication NOREPLICATION Tidak diizinkan untuk memulai replikasi streaming atau mode pencadangan (default).
-P
--pwprompt
PASSWORD '<password>' Memulai permintaan pembuatan kata sandi atau menambahkan kata sandi yang diberikan kepada pengguna. Hindari menggunakan opsi ini untuk membuat pengguna tanpa kata sandi.
/ PASSWORD NULL Secara khusus menyetel kata sandi ke nol. Setiap otentikasi kata sandi gagal untuk pengguna ini.
-c <number>
--connection-limit=<number>
CONNECTION LIMIT <number> Menyetel jumlah maksimum koneksi untuk pengguna. Default adalah tanpa batas.

Misalnya, buat pengguna dengan membuat peran dan hak istimewa basis data dan tambahkan -e tag untuk menggemakan hasil:

sudo -u postgres createuser -d -r -e <name>

Atau gunakan padanan PSQL:

CREATE USER <name> WITH CREATEROLE CREATEDB;

Dalam kedua kasus, hak istimewa yang disebutkan diberikan secara otomatis kepada pengguna baru.

Buat Pengguna PostgreSQL Secara Interaktif

Pembuatan pengguna interaktif adalah pilihan praktis yang tersedia hanya untuk utilitas klien. Untuk membuat pengguna secara interaktif, jalankan perintah berikut:

sudo -u postgres createuser --interactive

Perintah secara otomatis memunculkan serangkaian pertanyaan, menanyakan hal berikut:

  • Nama peran.
  • Apakah perannya adalah pengguna super.
  • Jika pengguna diizinkan untuk membuat database.
  • Jika pengguna diizinkan untuk membuat peran lain.

Jawab ya (y ) ke pertanyaan superuser secara otomatis untuk menambahkan hak istimewa "buat database" dan "buat peran" dan akhiri prompt.

Mencantumkan Semua Pengguna di PostgreSQL

Alat penting untuk manajemen pengguna dalam basis data adalah membuat daftar semua pengguna dengan peran dan hak istimewanya masing-masing.

Untuk membuat daftar semua pengguna di PostgreSQL, lakukan hal berikut:

1. Hubungkan ke prompt PSQL sebagai pengguna postgres:

sudo -u postgres psql

2. Daftar semua pengguna dengan perintah berikut:

\du

Output menunjukkan tabel dengan nama peran, atribut (hak istimewa), dan grup pengguna. Untuk menampilkan deskripsi setiap peran, tambahkan tanda tambah (+ ) tanda:

\du+

Output menunjukkan kolom tambahan dengan deskripsi peran jika berlaku.


Ubuntu
  1. Cara Membuat Pengguna Sudo di Debian

  2. Cara membuat pengguna di Linux[Manajemen pengguna]

  3. Cara Membuat dan Menghapus Pengguna di Ubuntu 16.04

  1. Cara membuat Pengguna Linux Menggunakan Ansible

  2. Centos – Bagaimana Cara Membuat Pengguna Sftp Di Centos?

  3. Cara Membuat pengguna sudo di CentOS 7

  1. Cara Membuat Pengguna Sudo di Rocky Linux 8

  2. Bagaimana cara membuat crontab melalui skrip

  3. Bagaimana saya bisa membuat pengguna yang tidak masuk?