数据库安全权限控制管理思想

web账户授权实战案例

a.生产环境主库用户的账号授权:

GRANT SELECT,INSERT,UPDATE,DELETE ON blog.*TO ‘blog‘@10.0.0.%‘ identified by ‘oldboy456‘;

b.生产环境从库用户的授权:

GRANT SELECT ON blog.*TO ‘blog‘@‘10.0.0.%‘identified by ‘oldboy456‘;

当然从库除了做SELECT 的授权外,还可以加read-only等只读参数。

2.4产环境读写分离账户设置

给开发人员的读写分离用户设置,除了IP必须要不同外,我们尽量为开发人员使用提供方便。因此,读写分离的地址,除了IP不同外,账号,密码,端口等看起来都是一样的,这才是人性化的设计,体现了运维或DBA人员的专业。

主库(尽量提供写服务):blog oldboy456 ip:10.0.0.179 port 3306

从库(今提供读服务):  blog oldboy456 ip:10.0.0.180 port 3306

提示: 两个账号的权限是不一样的

提示:从数据库的设计上,对于读库,开发人员应该设计优先连接读库,如果读库没有,超时后,可以考虑主库,从程序设计上来保证提升用也要根据主库的繁忙程度来综合体验,具体情况都是根据业务项目需求来抉择

3,数据库客户端访问控制

1.更改默认mysql client 端口,如phpadmin 管理端口为9999,其他客户端也是一样的

2:数据库web client端统一部署在1-2台不对外服务Server上,限制ip,及9999端口只能从内网访问。

3.不做公网域名解析,用host实现访问或者内部IP

4phpadmin站点目录独立所有其他站点根目录外,只能由指定的域名或ip地址访问。

5.限制使用web连接的账号管理数据库,根据用户角色设置指定账号访问。

6按开发及相关人员根据职位角色分配管理账号

7:设置指定账号访问(apache/nginx验证+mysql用户两个登录限制)

8.统一所有数据库账号登录入口地址。禁止所有开发私自上传phpadmin等数据库管理等

9开通vpn,跳板机,内部IP管理数据库

系统层控制

1限制或禁止开发人员ssh root 管理,通过sudo细化权限,使用日志审计

2对phpadmin端config等配置文件进行读写权限控制

3:取消费指定服务器的所有phpadmin web 连接端

4.禁止非管理人员管理有数据库web client端的服务器的权限。

5读库分业务读写分离

细则补充:对数据库的select 等大量测试,统计,备份等操作,要在不对外提供select的单独从库执行

主从架构生产环境从服务器分业务拆分使用案例:

M-->s1==对外部用户提供服务(浏览帖子,浏览博客,浏览文章)

-->s2==>对外部用户提供服务(浏览帖子,浏览博客,浏览文章)

-->s3==>对外部用户提供服务(浏览帖子,浏览博客,浏览文章)

-->s2==>对内部用户提供服务(后台访问,脚本任务,数据分析,开发人员浏览)

-->s5==>数据库备份服务(开启从服务器binlog功能,可实现增量备份及恢复)

时间: 2024-08-28 08:05:44

数据库安全权限控制管理思想的相关文章

如何在 vue 中添加权限控制管理?---vue中文社区

前言 在一个项目中,一些功能会涉及到重要的数据管理,为了确保数据的安全,我们会在项目中加入权限来限制每个用户的操作.作为前端,我们要做的是配合后端给到的权限数据,做页面上的各种各样的限制. 需求 因为这是一个工作上的业务需求,所以对于我来说主要有两个地方需要进行权限控制. 第一个是侧边菜单栏,需要控制显示与隐藏. 第二个就是页面内的各个按钮,弹窗等. 流程 如何获取用户权限? 后端(当前用户拥有的权限列表)-> 前端(通过后端的接口获取到,下文中我们把当前用户的权限列表叫做 permission

Java编程思想:第6章 访问权限控制

访问控制(或隐藏具体实现)与“最初的实现并不恰当”有关. 很多时候我们需要重构代码使之更可读,更易理解,更具维护性,但是又不能影响到客户端程序员的正常使用.我们根本不知道客户端程序员使用了哪些东西(方法),所以我们也不知道哪些东西可以改,为了解决这个问题,java提供了访问权限修饰词.访问修饰词加上包结构使得构件的捆绑和使用机制非常完善,不产生冲突. 6.1 包:库单元 用包来分隔管理不同的类. 不同包下的类需要导入,就是为了提供一个管理名字空间的机制.package 和 import就是为了解

Java编程思想(六、访问权限控制)

访问控制(或隐藏具体实现)与"最初的实现并不恰当"有关.便于未来重构代码,而不必对业务层做过多的改变.因此,Java提供了访问控制修饰词,以供类库开发人员向客户端程序员指明哪些是可用的,哪些是不可用的. 访问控制的等级,从最大权限到最小权限依次为:public.protected.包访问权限(没有关键词).和private. 1.包:类库单元.包内含有一组类,它们在单一的名字空间之下被组织在了一起.比如,在Java的标准发布中有一个工具库.它被组织在java.util名字空间之下.ja

通用权限管理平台权限控制--按钮权限

通用权限管理系统的重点在于如何更好的控制按钮操作权限,在下结合自己的平台经验,在使用MVC的环境下,使用自定义MVC控件,并且结合系统的权限控制于一体,减少业务在权限方面的控制,使对按钮权限的控制更加简洁. 通用权限控制系统的权限用户控件实现以后,在实际使用中如下所示: @Html.Eap().Button().Id("btnAdd").Name("添加").Class("easyui-linkbutton").IconClass("i

《Java编程思想》笔记 第六章 访问权限控制

1.编译单元 一个 编译单元即 .java 文件 内只能有一个 public 类  且该文件名必须与public 类名 完全一致. 编译单元内也可以没有public类 文件名可随意. 2. 包:库单元 2.1 默认访问权限即包访问权限,同一包下可访问(指同一目录下各个.java文件中的包访问权限类或者类成员可相互访问). 2.2 父,子目录不属于同一包(其实没有什么父子目录,包名都是唯一的). 2.3 包可以看成类的集合,里面有public类 也有默认权限类,所以同一包下2个.java文件中不能

《Java编程思想》06.访问权限控制

如何把变动的事物与保持不变的事物区分开来 访问权限控制的等级(大->小):public.protected.包访问权限(没有关键词).private 包:库单元 代码组织 编译一个.java文件,文件中的每个类都会有一个输出文件.class,文件名与类名相同 Java的可运行程序是一组可以打包并压缩为一个Java文档文件(JAR)的.class文件.Java解释器负责这些文件的查找.装载和解释 类库 ---实际上---> 一组类晚间 Java包的命名规则全部使用小写字母 package acc

SpringMVC + Mybatis + SpringSecurity(权限控制到方法按钮) + Rest(服务) + Webservice(服务) + Quartz(定时调度)+ Lucene(搜索引擎) + HTML5 bootstrap + Maven项目构建绝对开源平台

框架整合: Springmvc + Mybatis + Shiro(权限) + REST(服务) + WebService(服务) + JMS(消息) + Lucene(搜搜引擎) + Quartz(定时调度) + Bootstrap Html5(支持PC.IOS.Android) 需要源码请加Q:3121026417   此处[源码获取地址] 框架简介: 项目Maven构建,真实大型互联网架构,做到高并发,大数据处理,整个项目使用定制化服务思想,提供模块化.服务化.原子化的方案,将功能模块进行

springmvc+spring+mybatis+maven项目集成shiro进行用户权限控制【转】

项目结构: 1.maven项目的pom中引入shiro所需的jar包依赖关系 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 <dependency>     <groupid>javax.servlet</groupid>     javax.servlet-api</artifactid>     <version>3.0.1</version>

【转】IoC/DIP其实是一种管理思想

原文转自:http://blogread.cn/it/article/6487?f=wb 关于IoC的的概念提出来已经很多年了,其被用于一种面象对像的设计.我在这里再简单的回顾一下这个概念.我先谈技术,再说管理. 话说,我们有一个开关要控制一个灯的开和关这两个动作,最常见也是最没有技术含量的实现会是这个样子: 然后,有一天,我们发现需要对灯泡扩展一下,于是我们做了个抽象类: 但是,如果有一天,我们发现这个开关可能还要控制别的不单单是灯泡的东西,我们就发现这个开关耦合了灯泡这种类别,非常不利于我们