
PostgreSQL telah menjadi sistem database yang banyak digunakan di seluruh dunia dan sangat aman.PostgreSQLtelah datang dengan dua jenis sekuritas, misalnya tingkat kolom dan tingkat baris. Topik utama kami adalah Keamanan Tingkat Baris di PostgreSQL. Keamanan tingkat baris dikatakan sebagai alat yang sederhana dan sangat dibutuhkan dalam keamanan PostgreSQL. Ini telah digunakan untuk mengontrol akses user ke tabel dan catatan tertentu berdasarkan beberapa kebijakan. Dengan menerapkan keamanan tingkat baris, kami akan membatasi user untuk hanya melihat atau memanipulasi catatan tabel yang berisi data tentang mereka daripada membuat perubahan pada catatan user lain.
Anda perlu membuka SQL Shell untuk PostgreSQL 13 dari bilah mulai Windows 10. Setelah membukanya, Anda akan mendapatkan layar hitam dari shell SQL. Tambahkan nama server, nama database, nomor port, nama user, dan password ketika ditanya satu per satu. SQL Shell akan siap untuk Anda gunakan lebih lanjut.
user basis data”Postgres” sudah menjadi user super sistem Anda. Jika Anda tidak masuk dari user super, Anda harus masuk darinya. Cara login dari akun superuser adalah dengan menggunakan perintah di bawah ini pada shell yang bertanda “c” dengan nama database yang akan digunakan, misal Postgres, beserta nama superuser, misal Postgres. Ini mungkin memerlukan password untuk akun jika belum masuk.
Buat tabel:
Anda perlu membuat tabel baru di dalam superuser dan database “Postgres”. Jadi, kami telah menggunakanCREATE TABLE permintaan untuk membuat tabel “test” dengan beberapa kolom seperti yang ditunjukkan.
Setelah membuat tabel “test”, kami telah menyisipkan tiga record di dalamnya untuk 3 user yang berbeda, misalnya aqsa, raza, dan rimsha, melalui “INSERT INTO” instruksi di shell.
Tabel dan catatannya dapat dilihat di layar SQL Shell menggunakan SELECT pertanyaan.
Buat Pengguna:
Kami telah bekerja di SQL Shell pada tes tabel dengan superuser “Postgres”, tetapi kita harus membuat beberapa user lain seperti yang disebutkan dalam tabel, misalnya aqsa, raza, dan rimsha. Jadi, kami telah menggunakanCREATE USERperintah untuk melakukannya saat menetapkan password. Setelah itu, kami telah memberikanSELECT hak istimewa pada semua user ini setelah pembuatan.
Ketika kami telah menggunakan user yang baru dibuat untuk mengambil catatan tabel “test”, output menunjukkan bahwa user dapat dengan mudah mengakses semua baris dari tabel, bukan baris yang memiliki namanya. Output di bawah ini menunjukkan output untuk mengakses tabel tes dengan user “Aqsha”.
Output di bawah ini menunjukkan output untuk mengakses pengujian tabel dengan user “Raza”.
Output di bawah ini adalah untuk pengujian tabel dengan user “rimsha”.
Buat Kebijakan:
Tujuan keamanan tingkat Baris adalah untuk membatasi user hanya untuk mengambil catatan yang memiliki informasi tentang diri mereka sendiri. Kami ingin keamanan tingkat baris bagi user untuk tidak mengambil catatan user lain. Mari kita mulai dengan login dari Superuser “Postgres” di SQL Shell.
Setelah login, kami telah menggunakan instruksi CREATE POLICY yang ditunjukkan di bawah ini untuk membuat kebijakan bernama “new” di atas meja “test”. Kami telah menggunakan “ALL” kata kunci di sini mewakili semua hak istimewa, misalnya menyisipkan, memperbarui, memodifikasi, dll. Anda dapat membuatnya khusus dengan menambahkan sisipan, pilih, perbarui, atau kata kunci apa pun. Peran PUBLIK telah menunjukkan semua peran. Anda juga dapat menentukan user atau peran di sini. Kami telah menggunakan “USING” ekspresi di sini. Ini akan membandingkan nama user yang saat ini masuk dengan tabel “tes” di kolom “Nama”.
Aktifkan Keamanan Tingkat Baris:
Hanya membuat Kebijakan dan telah diterapkan ke peran dan tabel tidak cukup untuk mendapatkan perubahan. Anda harus mengaktifkan Keamanan tingkat baris pada tabel “pengujian” yang memiliki kebijakan yang ditetapkan sebelumnya. Jadi, kami telah menggunakan user super “Postgres” untuk mengaktifkan keamanan tingkat baris pada tabel “test” dengan ALTER TABLE perintah yang ditunjukkan pada tangkapan layar terlampir.
Karena saat ini kami telah masuk dari user super “Postgres“, perintah “SELECT” bersama dengan kata kunci “current_user” menunjukkan nama user di output. Setelah mengakses tabel dengan perintah pilih saat login dari superuser, itu menunjukkan semua catatan tabel “tes”. Ini berarti kebijakan dan keamanan tingkat baris tidak memengaruhi user super.
Sekarang, kita akan masuk dari peran baru yang dibuat beberapa waktu lalu. Kami telah masuk dari user “aqsa” dan memeriksa user yang saat ini masuk. Ia kembali”aqsa” sebagai user saat ini. Setelah mengambil meja “test” merekam dengan perintah SELECT,
ia mengembalikan baris yang hanya dimiliki oleh nama user “aqsa” cocok dengan kolom “Nama” di tabel. Semua baris lainnya telah diamankan dan tidak dapat dilihat oleh user “aqsa”.
Ayo login dari user lain,”Raza” dari terminal dan periksa user saat ini. itu kembali”Raza” sebagai user saat ini. Output untuk perintah SELECT hanya menunjukkan catatan untuk user “Raza”dari meja”test”.
Keamanan tingkat baris telah bekerja sama pada user “rimsha” seperti gambar keluaran di bawah ini.
Keamanan Tingkat Baris ByPass:
Izin melewati dapat digunakan untuk mengesampingkan keamanan tingkat baris oleh beberapa user super dan user istimewa lainnya. Pengguna yang memiliki hak istimewa Bypass keamanan tingkat baris dapat mengesampingkan keamanan tingkat baris untuk tabel apa pun dan juga mengakses catatan user lain. Jadi, kami telah masuk dari akun user super di dalam terminal terlebih dahulu.
Setelah itu, kami telah mengubah hak user “Raza” dengan perintah ALTER USER yang diterapkan padanya. Kami telah menetapkan user “Raza”, hak istimewa untuk melewati keamanan tingkat baris dengan “bypassrls” disebutkan dalam kueri ALTER USER seperti yang ditunjukkan.
Masuk dari user “Raza” dari shellnya. Anda dapat melihat bahwa user “Raza” sekarang dapat melampaui kebijakan keamanan tingkat baris dan dapat dengan mudah melihat dan mengubah catatan semua user lain dari tabel “test” melalui kueri SELECT.
Jatuhkan Kebijakan:
Mari login dari superuser sekali lagi untuk menjatuhkan kebijakan “new” yang telah diterapkan pada tabel “tes”.
Perintah DROP POLICY telah digunakan di shell untuk menjatuhkan kebijakan bernama “new” dari tabel “tes”.
Setelah menjatuhkan kebijakan, kami telah masuk dari salah satu user untuk memeriksa apakah itu masih berfungsi atau tidak. Kami telah menemukan bahwa meneteskan kebijakan tidak dapat mengubah user “aqsa” atau orang lain untuk mengambil record dari sebuah tabel “test”. Ini karena kami belum menonaktifkan keamanan tingkat baris di tabel.
Nonaktifkan Keamanan Tingkat Baris:
Untuk menonaktifkan keamanan tingkat baris di atas meja “test”, masuk sebagai user super dan gunakan kueri yang ditunjukkan pada jepretan di bawah.
Setelah login dari user lain, Anda akan dapat melihat dan memodifikasi catatan dengan mudah.
Kesimpulan:
Tutorial ini berisi demonstrasi singkat tentang keamanan tingkat baris yang digunakan untuk membatasi user dalam mengakses data untuk tujuan keamanan. Keamanan tingkat baris telah dicapai dengan membuat user, kebijakan, dan kemudian mengaktifkan keamanan. Artikel tersebut juga memuat implementasi mengenai penghapusan kebijakan dan penonaktifan keamanan tingkat Baris. Oleh karena itu, artikel ini adalah paket bonus bagi user kami untuk melakukan segalanya mulai dari mengaktifkan hingga menonaktifkan keamanan tingkat baris dalam satu pengambilan.