博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
5.4. 为数据安全而分库
阅读量:5737 次
发布时间:2019-06-18

本文共 2511 字,大约阅读时间需要 8 分钟。

我们通常使用一个数据库开发,该数据库包含了前后台所有的功能,我建议将前后台等等功能进行分库然后对应各种平台分配用户权限,例如

我们创建三个数据库cms,frontend,backend 同时对应创建三个用户 cms,frontend,backend 三个用户只能分别访问自己的数据库,注意在系统的设计之初你要考虑好这样的划分随之系统需要做相应的调整。

CREATE DATABASE `cms` /*!40100 COLLATE 'utf8_general_ci' */;CREATE DATABASE `frontend` /*!40100 COLLATE 'utf8_general_ci' */;CREATE DATABASE `backend` /*!40100 COLLATE 'utf8_general_ci' */;

backend 负责后台,权限最高

mysql> SHOW GRANTS FOR 'backend'@'localhost';+--------------------------------------------------------------------------------------+| Grants for backend@localhost                                                         |+--------------------------------------------------------------------------------------+| GRANT USAGE ON *.* TO 'backend'@'localhost'                                          || GRANT SELECT, INSERT, UPDATE, DELETE ON `cms`.* TO 'backend'@'localhost'             || GRANT SELECT, INSERT, UPDATE, DELETE ON `frontend`.* TO 'backend'@'localhost'        || GRANT SELECT, INSERT, UPDATE, DELETE, CREATE ON `backend`.* TO 'backend'@'localhost' |+--------------------------------------------------------------------------------------+4 rows in set (0.04 sec)

frontend 是前台权限,主要是用户用户中心,用户注册,登录,用户信息资料编辑,查看新闻等等

mysql> SHOW GRANTS FOR 'frontend'@'localhost';+------------------------------------------------------------------------+| Grants for frontend@localhost                                          |+------------------------------------------------------------------------+| GRANT USAGE ON *.* TO 'frontend'@'localhost'                           || GRANT SELECT, INSERT, UPDATE ON `frontend`.* TO 'frontend'@'localhost' || GRANT SELECT ON `cms`.`news` TO 'frontend'@'localhost'                 |+------------------------------------------------------------------------+3 rows in set (0.00 sec)

cms 用户是网站内容管理,主要负责内容更新,但登陆CMS后台需要`backend`.`Employees`表用户认证,所以他需要读取权限,但不允许修改其中的数据。

mysql> SHOW GRANTS FOR 'cms'@'localhost';+----------------------------------------------------------------------+| Grants for cms@localhost                                             |+----------------------------------------------------------------------+| GRANT USAGE ON *.* TO 'cms'@'localhost'                              || GRANT SELECT, INSERT, UPDATE, DELETE ON `cms`.* TO 'cms'@'localhost' || GRANT SELECT ON `backend`.`Employees` TO 'cms'@'localhost'           |+----------------------------------------------------------------------+3 rows in set (0.00 sec)

原文出处:Netkiller 系列 手札

本文作者:陈景峯
转载请与作者联系,同时请务必标明文章原始出处和作者信息及本声明。

你可能感兴趣的文章
Ubuntu 12.04 root用户登录设置
查看>>
存储过程点滴
查看>>
Maven编译跳过test的设置
查看>>
SQLyog图形化l数据库的操作和学习
查看>>
[LeetCode]22.Generate Parentheses
查看>>
计算A/B Test需要的样本量
查看>>
二叉树前序中序后序遍历的非递归方法
查看>>
mysql 行转列列转行
查看>>
《设计模式系列》---桥接模式
查看>>
[Unity3d]Shader 着色器 学习前了解知识
查看>>
Linux中文件颜色所代表的属性和颜色
查看>>
Redrain duilib中事件委托存在的问题
查看>>
43、我的C#学习笔记9
查看>>
网站建表实践及优化
查看>>
字符串的简单操作
查看>>
C#新功能--命名参数与可选参数
查看>>
strtok和strtok_r
查看>>
维辰超市:借助云商城成功转型新零售
查看>>
web.xml中<load-on-start>n</load-on-satrt>作用
查看>>
1061. Dating (20)
查看>>