Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk mereka bentuk struktur jadual MySQL yang selamat untuk melaksanakan fungsi kawalan kebenaran?

Bagaimana untuk mereka bentuk struktur jadual MySQL yang selamat untuk melaksanakan fungsi kawalan kebenaran?

王林
王林asal
2023-10-31 12:00:44957semak imbas

Bagaimana untuk mereka bentuk struktur jadual MySQL yang selamat untuk melaksanakan fungsi kawalan kebenaran?

Bagaimana untuk mereka bentuk struktur jadual MySQL yang selamat untuk melaksanakan fungsi kawalan kebenaran?

Dengan perkembangan Internet, keselamatan sistem telah mendapat perhatian yang semakin meningkat. Dalam kebanyakan aplikasi, kawalan kebenaran ialah cara penting untuk melindungi data dan fungsi sensitif. Dalam pangkalan data MySQL, kami boleh melaksanakan fungsi kawalan kebenaran dengan mereka bentuk struktur jadual dengan betul untuk memastikan bahawa hanya pengguna yang dibenarkan boleh mengakses data tertentu.

Berikut ialah reka bentuk struktur jadual MySQL asas untuk melaksanakan fungsi kawalan kebenaran:

Nama jadual: pengguna
Field: id, nama pengguna, kata laluan, role_id

Nama jadual: roles
Field: id, role_name

Nama Jadual

kebenaran
Bidang: id, permission_name

Nama jadual: role_permissions
Field: role_id, permission_id

Nama jadual: user_roles
Field: user_id, role_id

Di sini dan, kami melaksanakan perhubungan, roles yang berkaitan. Berikut ialah beberapa contoh kod untuk mencipta jadual dan mengisi data sampel:

--Buat jadual pengguna
BUAT pengguna JADUAL (
id INT PRIMARY KEY AUTO_INCREMENT,
nama pengguna VARCHAR(20) BUKAN NULL,
kata laluan VARCHAR(255) NOT NULL,
role_id INT
);

--Cipta jadual peranan
CIPTA JADUAL peranan (
id INT PRIMER KEY AUTO_INCREMENT,
role_name VARCHAR(30) NOT NULL
keizinan TABLE

);

sRECATE semula jadual
id INT UTAMA KUNCI AUTO_INCREMENT,
kebenaran_nama VARCHAR(30) BUKAN NULL
);

--Buat role_permissions

CREATE TABLE role_permissions (
id_id_ID INT,
id_id_ID,_ID_ID) kebenaran
);

--Buat jadual pengguna_peranan

BUAT JADUAL peranan_pengguna (

id_pengguna INT,
id_peranan INT,
KUNCI UTAMA (id_pengguna, id_peranan)
);

-- Isikan data sampel

(MASUKKAN_nama_iklan)traminis ), ('Editor'), ('Pembaca');

MASUKKAN KE dalam kebenaran (nama_kebenaran) NILAI ('Buat artikel'), ('Edit artikel'), ('Padam artikel');
MASUKKAN KE DALAM peranan_keizinan (role_id , id_izin) NILAI (1, 1), (1, 2), (1, 3), (2, 2), (3, 3);
MASUKKAN KE DALAM pengguna (nama pengguna, kata laluan, role_id) NILAI ('admin' , 'kata laluan', 1), ('editor', 'kata laluan', 2), ('pembaca', 'kata laluan', 3);
MASUKKAN KE DALAM peranan_pengguna (id_pengguna, id_peranan) NILAI (1, 1), (2 , 2), (3, 3);

Melalui struktur jadual dan data sampel di atas, kami boleh melaksanakan fungsi kawalan kebenaran berikut:

Pentadbir mempunyai kebenaran untuk mencipta, mengedit dan memadam artikel
  1. Editor mempunyai kebolehan untuk mengedit artikel Kebenaran;
  2. Pembaca tidak mempunyai sebarang kebenaran khas.
  3. Dalam aplikasi, selepas pengesahan log masuk berjaya, kebenaran yang dimiliki pengguna boleh ditanya berdasarkan ID peranan pengguna, seperti yang ditunjukkan di bawah:

PILIH p.permission_name

DARI pengguna SEBAGAI u

SERTAI pengguna_peranan SEBAGAI ANDA ON u.id = ur.user_id
INNER JOIN roles AS r ON ur.role_id = r.id
INNER JOIN role_permissions AS rp ON r.id = rp.role_id
INNER JOIN kebenaran AS p ON rp.permission_id = p.id
WHERE u. nama pengguna = 'admin';

Melalui pertanyaan di atas, kami boleh mendapatkan kebenaran pengguna semasa, dengan itu mengawal akses pengguna kepada data dan fungsi berdasarkan kebenaran.

Perlu diingatkan bahawa apabila mereka bentuk struktur meja, ia harus direka bentuk secara munasabah berdasarkan keperluan sebenar. Selain struktur jadual asas dalam contoh di atas, anda boleh menambah lebih banyak medan dan perhubungan jadual berdasarkan keperluan perniagaan tertentu.

Ringkasnya, dengan mereka bentuk struktur jadual MySQL secara rasional untuk melaksanakan fungsi kawalan kebenaran, keselamatan sistem dapat dilindungi dengan berkesan. Semoga kandungan di atas dapat membantu anda.

Atas ialah kandungan terperinci Bagaimana untuk mereka bentuk struktur jadual MySQL yang selamat untuk melaksanakan fungsi kawalan kebenaran?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn