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
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
);
CREATE TABLE role_permissions (
id_id_ID INT,
id_id_ID,_ID_ID) kebenaran
);
--Buat jadual pengguna_peranan
id_pengguna INT,
id_peranan INT,
KUNCI UTAMA (id_pengguna, id_peranan)
);
-- Isikan data sampel
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:
PILIH p.permission_name
DARI pengguna SEBAGAI uSERTAI 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!