Cara menginisialisasi manajemen user perdatabase pada Firebird 3.0

Bismillahirrohmanirrohim.
Assalamu’alaikum Wr Wb.

Lama tidak berbagi, kali ini saya ingin berbagi sedikit yang saya ketahui yaitu cara menginisialisasi manajemen user perdatabase pada Firebird 3.0.

Pada Interbase kita mengenal istilah EUA (Embedded User Authentication) dimana manajemen user (daftar user yang berhak mengakses database) dapat diatur menyatu didalam database, tidak lagi nempel pada server. Sehingga masing-masing database mempunyai user sendiri-sendiri.

Pada Firebird sebelum 3.0, manajemen user disimpan dalam server (pada file security2.fdb), ini agak merepotkan jika ada banyak aplikasi yang mengakses database yang berbeda, mungkin itulah sebabnya umumnya aplikasi yang kita jumpai sangat jarang yang menggunakan hak akses bawaan, sebagai gantinya mereka membuat sendiri table user untuk mengatur hak akses.

Pada Firebird 3.0 selain menggunakan manajemen user default yaitu menempel pada server kita diberikan alternatif untuk menyimpan manajemen user pada database file ataupun database itu sendiri (mirip dengan EUA pada Interbase).

Kalau dibandingkan dengan EUA pada Interbase, manajemen user perdatabase ini masih mempunyai kelemahan pada sisi kelemahan yaitu karena harus didaftarkan dulu di file databases.conf.

Pada EUA seseorang yang menemukan (terlalu kasar kalo disebut mencuri), praktis tidak dapat membuka database kalo tidak tahu passwordnya, sedangkan pada security perdatabase ala firebird ini database tetap bisa dibuka kalo tidak didaftarkan (unreg) pada database.conf.

Ibarat “tiada akar arangpun jadi”, dengan kelemahan diatas bukan berarti kita tidak dapat mengamankan database kita jika menggunakan Firebird.

Database akan aman selama orang yang tidak berwenang tidak dapat menjangkau secara fisik, bagaimana caranya?
Letakkan database pada partisi NTFS dan berikan hak baca/tulis selain system, lindungi server dengan firewall dan matikan filesharing terutama pada folder tempat database tersebut berada.

Banyak sekali keutungan jika kita menggunakan manajemen user bawaan database dibanding dengan membuat table user akal-akalan, diantaranya :
– Setiap user akan hanya dapat melakukan aktifitas ke database sesuai hak yang diberikan baik melalui aplikasi yang kita buat maupun menggunakan tool lain.

Dengan menggunakan table user akal-akalan ada 2 kemungkinan bila seorang user akan mengakses database tidak melalui aplikasi yaitu tidak bisa masuk sama sekali atau bisa masuk dengan bebas keseluruh area didalam database walaupun dia tidak mempunyai wewenang dalam aplikasi.

Namun semua kembali kepada anda, apa yang kita pakai tergantung selera masing-masing, apa yang menurut saya baik belum tentu menurut orang lain baik, apa yang menurut saya mudah belum tentu menurut orang lain mudah, begitu juga sebaliknya.

Okelah segini aja prakatanya, lebih jelasnya silahkan lihat pada gambar dibawah ini.
Semoga bermanfaat.

Yang butuh Firebird 3.0 dapat di download di …
http://www.firebirdsql.org/en/firebird-3-0-0-beta1/ (Installer)
http://web.firebirdsql.org/download/snapshot_builds/win/3.0/ (Snapshot Build)

2 Comments to Cara menginisialisasi manajemen user perdatabase pada Firebird 3.0

  1. Tulus says:

    Nice Share…….. sangat bermanfaat…..

  2. Oman Kusmana says:

    Menambah pengetahuan saya. Tips yang baik.
    Terima kasih banyak.

    Dan disini sekedar menambah pendekatan yang lain untuk melindungi database kita dari akses yang tidak berwenang terutama untuk database Firebird yang kebetulan belum memiliki fitur EUA.

    1. Membuat user baru yang setara dengan SYSDBA, mempunyai role sebagai admin. Pada firebird 3 tambahkan akses create database (membuat database)
    2. Buat database dengan user yang telah terdefinisi seperti pada langkah no. 1.
    3. Setelah database terbuat oleh user yang telah terdefinisi pada langkah no.1 selanjutnya
    buat role dengan nama SYSDBA.

    Dengan membuat role SYSDBA maka ketika mengakses database dengan user SYSDBA firebird tidak akan mengijinkan.

Leave a Reply

Your email address will not be published. Required fields are marked *