mysql建立5张表查权限

更新时间:02-11 教程 由 ぐ夏筱沐 分享

为了保障数据库操作的安全性,我们需要对用户的权限进行控制和管理。而在MySQL中,可以通过建立五张表来实现不同层级的权限控制。

第一张表为user表,用于存储MySQL的用户信息,包括username、password等。创建语句如下:

CREATE TABLE user (userid INT NOT NULL AUTO_INCREMENT,username VARCHAR(20) NOT NULL,password VARCHAR(20) NOT NULL,PRIMARY KEY (userid));

第二张表为role表,用于存储各种角色的信息,包括角色名和描述等。创建语句如下:

CREATE TABLE role (roleid INT NOT NULL AUTO_INCREMENT,rolename VARCHAR(20) NOT NULL,description VARCHAR(50),PRIMARY KEY (roleid));

第三张表为operation表,用于存储所有可用的操作,例如:SELECT、INSERT、DELETE、UPDATE等。创建语句如下:

CREATE TABLE operation (operationid INT NOT NULL AUTO_INCREMENT,operationname VARCHAR(20) NOT NULL,PRIMARY KEY (operationid));

第四张表为role_operation表,用于存储各种角色所拥有的操作权限。创建语句如下:

CREATE TABLE role_operation (id INT NOT NULL AUTO_INCREMENT,roleid INT NOT NULL,operationid INT NOT NULL,PRIMARY KEY (id),FOREIGN KEY (roleid) REFERENCES role(roleid),FOREIGN KEY (operationid) REFERENCES operation(operationid));

最后一张表为user_role表,用于存储每个用户所属的角色列表。因为一个用户可能会有多个角色,所以需要使用一对多关系进行对应。创建语句如下:

CREATE TABLE user_role (id INT NOT NULL AUTO_INCREMENT,userid INT NOT NULL,roleid INT NOT NULL,PRIMARY KEY (id),FOREIGN KEY (userid) REFERENCES user(userid),FOREIGN KEY (roleid) REFERENCES role(roleid));

通过以上五张表的建立,我们可以实现MySQL的细粒度权限控制,可以根据用户身份和角色来限制不同的操作权限。

声明:关于《mysql建立5张表查权限》以上内容仅供参考,若您的权利被侵害,请联系13825271@qq.com
本文网址:http://www.25820.com/tutorial/14_2255452.html