MySQL是一种关系型数据库管理系统,广泛用于存储和管理数据。在基于功能的登录系统中,访问级别控制是指根据用户的角色和权限来限制其对系统功能和数据的访问。
适用于需要精细权限管理的系统,如企业管理系统、金融系统、医疗系统等。
users
)roles
)permissions
)user_roles
)role_permissions
)CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(50) NOT NULL,
password VARCHAR(255) NOT NULL
);
CREATE TABLE roles (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL
);
CREATE TABLE permissions (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL
);
CREATE TABLE user_roles (
user_id INT,
role_id INT,
PRIMARY KEY (user_id, role_id),
FOREIGN KEY (user_id) REFERENCES users(id),
FOREIGN KEY (role_id) REFERENCES roles(id)
);
CREATE TABLE role_permissions (
role_id INT,
permission_id INT,
PRIMARY KEY (role_id, permission_id),
FOREIGN KEY (role_id) REFERENCES roles(id),
FOREIGN KEY (permission_id) REFERENCES permissions(id)
);
INSERT INTO users (username, password) VALUES ('admin', 'admin123');
INSERT INTO users (username, password) VALUES ('user1', 'user123');
INSERT INTO roles (name) VALUES ('admin');
INSERT INTO roles (name) VALUES ('user');
INSERT INTO permissions (name) VALUES ('create_post');
INSERT INTO permissions (name) VALUES ('edit_post');
INSERT INTO permissions (name) VALUES ('delete_post');
INSERT INTO user_roles (user_id, role_id) VALUES (1, 1); -- admin user
INSERT INTO user_roles (user_id, role_id) VALUES (2, 2); -- user1
INSERT INTO role_permissions (role_id, permission_id) VALUES (1, 1); -- admin can create post
INSERT INTO role_permissions (role_id, permission_id) VALUES (1, 2); -- admin can edit post
INSERT INTO role_permissions (role_id, permission_id) VALUES (1, 3); -- admin can delete post
INSERT INTO role_permissions (role_id, permission_id) VALUES (2, 1); -- user can create post
SELECT p.name AS permission
FROM users u
JOIN user_roles ur ON u.id = ur.user_id
JOIN role_permissions rp ON ur.role_id = rp.role_id
JOIN permissions p ON rp.permission_id = p.id
WHERE u.username = 'admin';
通过以上步骤,你可以为基于功能的登录系统设置访问级别,确保系统的安全性和灵活性。
企业创新在线学堂
企业创新在线学堂
企业创新在线学堂
第四期Techo TVP开发者峰会
云+社区技术沙龙[第17期]
云+社区沙龙online [国产数据库]
DB-TALK 技术分享会
北极星训练营
Techo Day 第三期
T-Day
领取专属 10元无门槛券
手把手带您无忧上云