用.net core 做网站,北京工商注册流程,设计制作的一般流程是明确问题,wordpress归档插件保护数据库 1. 用户1.1 创建用户1.2 查看用户1.3 删除用户1.4 修改密码 2. 权限2.1 授予权限2.2 查看权限2.3 撤销权限 之前都是介绍本地数据库而你自己就是数据库的唯一用户#xff0c;所以不必考虑安全问题。但实际业务中数据库大多放在服务器里#xff0c;你必须妥善处理好… 保护数据库 1. 用户1.1 创建用户1.2 查看用户1.3 删除用户1.4 修改密码 2. 权限2.1 授予权限2.2 查看权限2.3 撤销权限 之前都是介绍本地数据库而你自己就是数据库的唯一用户所以不必考虑安全问题。但实际业务中数据库大多放在服务器里你必须妥善处理好用户账户和权限的问题合理决定谁拥有什么程度的权限以防止对数据的破坏和误用。因此应该知道如何增强数据库的安全性。 1. 用户
1.1 创建用户
目前为止我们一直使用的是 root 用户帐户这是在安装 MySQL 时就设置的根账户。 在生产环境中我们需要创建新用户并合理分配权限。 例如你有一个应用程序及其相关联的数据库你要让使用你应用程序的用户拥有读写数据的权限但他们不应该有改变数据库结构的权限如创建和删除一张表否则会出大问题。又如你新招了一个DBA数据库管理员你需要给他新建一个账户让他可以访问一个或多个数据库乃至整个MySQL服务器。
创建用户 设置一个新用户用户名为 john可以选择用 来限制他可以从哪些地方访问数据库可以是主机名、IP地址、域名
CREATE USER john;
-- 无限制可以从任何位置访问
CREATE USER john127.0.0.1;
-- 限制IP地址可以是特点电脑也可以是特定网络服务器web server
CREATE USER johnlocalhost;
-- 限制主机名特定电脑
CREATE USER johncodewithmosh.com;
-- 限制域名不加试验也可以可以是该域名内的任何电脑但子域名则不行
CREATE USER john%.codewithmosh.com;
-- 加上了通配符可以是该域名及其子域名下的任何电脑-- 可以用IDENTIFIED BY来设置密码
CREATE USER john IDENTIFIED BY 1234;
-- 可以从任何地方访问设置密码为12341.2 查看用户
方法1采用代码 在自动创建的名为mysql的数据库中隐藏有个user表记录了账户信息查询即可
SELECT * FROM mysql.user除了john和root帐户还有几个MySQL内部自动建立和使用的帐户用户名均为 mysql.*。 Host 字段表示用户可以从哪里访问数据库john 是一个通配符 %表示他可以从任意位置访问数据库其它几个用户都是 localhost表示都只能从本电脑访问数据库不能从远程连接访。
方法2直接从左侧导航栏中的Administration标签页里的Users and Privileges, 同样可以查看服务器上的用户列表和信息。
1.3 删除用户
NOTE:记得总是即使删除掉组织中那些不用的账户。
DROP USER johncodewithmosh.com
-- 删除用户名1.4 修改密码
方法1用SET语句
SET PASSWORD FOR john 1234;
-- 修改john的密码
SET PASSWORD 1234;
-- 修改当前登录账户的密码方法2直接从左侧导航栏中的Administration标签页里的Users and Privileges点击用户john可修改其密码最后Apply。或者点击’Expire Password’强制其密码过期下次用户登录必须修改密码。
2. 权限
2.1 授予权限
数据库存在于主机中可以创建不同的连接来操作数据库。不同的连接对应不同的用户每个用户具有不同的权限。
用户创建和权限授予过程这个过程可以在管理员连接中完成对于网页或桌面应用程序的使用用户给予其读写数据的权限但禁止其增删表或修改表结构。
创建用户 例如我们有个叫作moon的应用程序我们给这个应用程序建个用户帐户名为moon_app(app指明这代表的是整个应用程序而非一个人)。
CREATE USER moon_app IDENTIFIED BY 1234;授予用户权限 给予其对sql_store数据库增删查改以及执行储存过程EXECUTE的权限这是给终端用户常用的权限配置。
GRANT SELECT, INSERT, UPDATE, DELETE, EXECUTE
-- GRANT子句表名授予那些权限ALL代表所有权限
ON sql_store.*
-- ON子句表明可访问那些数据库和表
-- sql_store.*表示可以访问sql_store下所有表
-- *.*表示可以访问所有数据库的所有表
TO moon_app;
-- 表示授予那些用户建立新连接 该新连接的用户名和密码采用创建的用户名和密码。测试用户数据库
USE sql_store;
SELECT *
FROM customers;
-- 正常使用
USE sql_invoicing;
-- 用sql_invoicing会报错Note:可以搜索 MySQL privileges第一个结果就是官方文档里罗列的所有可用的权限及含义其中的ALL是最高权限通常我们给予管理员ALL权限。 2.2 查看权限
两种方法SQL语句和导航菜单。
方法1
SHOW GRANTS;
-- 查看当前登录账户的权限
SHOW GRANTS FOR john;
-- 查看john账户的权限可以看到当前 root 帐户拥有最高权限除了ALL的所有权限还有另外一个叫 PROXY 的权限。感觉root帐户和john这样的DBA帐户的区别就跟群主和群管理员的区别一样。
方法2通过导航栏Administration标签页里的Users and Privileges来查看各用户的权限。 2.3 撤销权限
GRANT CREATE VIEW
ON sql_store.*
TO moon_app;
-- 授予权限
REVOKE CREATE VIEW
ON sql_store.*
FROM moon_app;
-- 撤销权限不要给予一个账户过多权限总是给予他所必须的最小权限不然就在系统中创造了太多的安全漏洞。