Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Manajemen akun pengguna, peran, izin, otentikasi PHP dan MySQL

Jika Anda membuat aplikasi web apa pun yang melibatkan pembuatan, pembacaan, pembaruan, dan penghapusan informasi apa pun, akan sangat umum bahwa hak istimewa untuk melakukan operasi yang berbeda pada data ini harus dibagikan di antara pengguna Anda sesuai dengan peran mereka yang berbeda. dan izin pada aplikasi Anda.

Ambil contoh aplikasi manajemen sekolah. Pengguna aplikasi tersebut biasanya termasuk dalam kategori:Siswa, Guru, Kepala Departemen (HOD), dan sebagainya. Permohonan Anda TIDAK boleh mengizinkan siswa untuk memiliki hak istimewa untuk menambah atau memperbarui hasil ujian semester mereka. Itu akan menjadi fungsi seorang Guru. Dan ketika kursus atau mata pelajaran baru akan ditambahkan ke dalam kurikulum, tugas hanya Kepala Departemen saja yang menambahkan kursus tersebut ke dalam sistem.

Pada sistem seperti itu, kita dapat menyebut Siswa, Guru, HOD (Kepala Departemen) sebagai peran yang berbeda dalam aplikasi kita. Untuk tindakan seperti menambahkan dan memperbarui hasil siswa, menambahkan kursus baru, kami akan menyebutnya sebagai izin.

Dari penjelasan sejauh ini, orang sudah dapat menyimpulkan bahwa Pengguna akan memiliki satu Peran dan peran akan memiliki beberapa Izin. Misalnya, John (seorang pengguna) akan memiliki satu peran (Siswa) dan beberapa Izin (mendaftarkan mata kuliah, melihat tanda, mencetak transkrip, dll).

Ini berarti bahwa dalam database MySQL kami, kami akan memerlukan 3 tabel database utama:pengguna, peran, dan izin. Kami diharuskan memiliki hubungan Banyak-Ke-Satu antara pengguna dan tabel database peran (Satu peran dimiliki oleh Banyak pengguna), dan hubungan Banyak-Ke-Banyak antara peran dan tabel izin (Banyak izin dapat ditetapkan ke Banyak peran) .

Cara Anda merujuk peran ini terserah Anda. Dalam contoh kami, kami telah menggunakan Siswa, Guru, HOD untuk mewakili peran karena contohnya adalah tentang aplikasi manajemen sekolah. Jika Anda sedang mengerjakan aplikasi manajemen hotel, perannya mungkin seperti Manajer, Pembersih, Resepsionis, dan sejenisnya.

Dalam tutorial ini, kami sedang membangun sistem manajemen akun pengguna untuk aplikasi blog. Jadi kita akan menyebut peran ini sebagai Penulis, Editor, dan Admin. Tentu saja Anda dapat mengubahnya sesuka Anda, tetapi ketiganya hampir menjadi standar untuk sistem manajemen konten.

Sistem pendaftaran dan login admin/pengguna penuh akan diterapkan. Semua pengguna akan masuk melalui formulir masuk yang sama dan setelah masuk, hanya pengguna administratif (Penulis, Editor, Admin) yang akan memiliki akses ke dasbor admin sementara pengguna biasa akan diarahkan ke beranda publik.

Kami akan membuat tabel database postingan di database kami sehingga memiliki sesuatu untuk menguji izin kami. Misalnya, pengguna dengan peran Editor akan dapat mengedit, memperbarui, memublikasikan, membatalkan publikasi, dan menghapus setiap dan semua postingan, sedangkan Penulis hanya akan memiliki izin untuk membuat, membaca, memperbarui, dan menghapus hanya postingan yang telah diciptakan oleh mereka sendiri. Admin akan memiliki izin untuk membuat, memperbarui, menghapus pengguna dan peran administratif lainnya, dan juga untuk menetapkan/membatalkan penetapan izin untuk peran dan peran kepada pengguna.

CATATAN:Saya sudah membuat tutorial Membuat aplikasi blog lengkap dari awal. Jadi kami tidak akan benar-benar menerapkan membuat, menghapus, dan memperbarui posting di sini. Kami hanya akan menunjukkan bagaimana izin ini bekerja di sekitar posting. Jika Anda ingin mempelajari cara membuat blog dengan postingan, lihat tutorial saya yang lain tentang cara membuat blog di PHP.

Struktur Direktori Proyek.

Buat folder proyek bernama akun pengguna lalu buat tiga folder lain di dalamnya:admin, termasuk, aset, masing-masing memiliki subfolder berikut:

admin:Folder ini menyimpan kode sumber untuk bagian admin aplikasi. Di folder ini, buat tiga folder lain yaitu, posting, peran, pengguna.

assets:Ini akan menampung file publik yang akan diakses oleh browser seperti gambar, css, js. Jadi di dalam aset, buat folder gambar, css, dan js.

termasuk:Ini akan menampung tambalan kode sumber untuk aplikasi kami yang dapat kami sertakan di berbagai tempat di aplikasi kami. Di dalam folder ini, buat dua folder lain:tata letak dan logika.

Pada titik ini, struktur proyek kami sudah siap. Kita sekarang dapat mulai mengkodekan sistem. Kami akan melakukannya di bagian selanjutnya dari tutorial ini.

Terima kasih atas perhatiannya dan sampai jumpa di part selanjutnya.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara membuat database multi-penyewa dengan struktur tabel bersama?

  2. Bagaimana cara mengubah direktori data MySQL?

  3. Cara terbaik untuk menguji apakah ada baris di tabel MySQL

  4. Tidak dapat terhubung ke MySQL 4.1+ menggunakan otentikasi lama

  5. Mengunggah gambar di CKEditor tanpa menggunakan plugin