在资料库管理上,root 相当於拥有所有权限的最大管理者,针对不同使用者规划给予相应的权限是很重要的。总不能让所有使用者都有能随意变更操作系统内容的权限,在资料库管理安全上势必会有疑虑和影响。
在资安DB管理上,除了审视建立使用者时是否给予适当权限,同时定期更换帐密也是很重要的一部分。
从头开始写文章才发现这个地方有更动XDD -Mysql5.7版後不再使用password作为密码字段,而是改成authentication_string 所以在之前的图1这句语法是无法生效的,会喷没有字段password错误。
还记得安装完预设root是没使用密码登入的吗!首先来设定重要的root密码~
SELECT User, Host, authentication_string, plugin FROM mysql.user;
这边注意到root地方密码目前空的没问题,但plugin栏位使用 auth_socket 这会导致我们用修改密码SQL语法时无法生效(对於auth_socket 密码是没有作用的)!!所以要配置密码,需要在同一命令中(同时)更改插件和设置密码。
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '1234';
在查询一次就会看到是正常的了,试着以新密码登入看看!
*** ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
*** SET PASSWORD FOR 'root'@'localhost' = PASSWORD("新密码");
*** UPDATE mysql.user SET authentication_string = PASSWORD("新密码") where User = 'root' and Host = 'localhost';
FLUSH PRIVILEGES; (UPDATE完後要执行这句刷新MySQL的系统权限相关表)
这边会注意到指令同样都是更改密码为何update那句还要flush权限才会生效呢??
透过FLUSH PRIVILEGES会将数据表的数据重建一份内存权限资料,如果内存的权限数据和磁盘数据的权限数据相同,则无需执行FLUSH PRIVILEGES,使用在权限数据可能存在不一致的情况下使用。
使用上来说:
不过在重要的更改root密码上还是建议flush一下保险~
Q: root密码出问题忘记登不进去怎麽办?
A: 在设定档中配置参数-> skip-grant-tables
(功能:mysql启动登入时不使用权限表认证,也就是所有使用者都可以不打密码就做登入!! 所以记得修改完密码後要去设定档改回来。)
使用部分呢让我们用例子解释常用语法 ex.要新增一个专门给开发人员写入资料的使用者
CREATE USER 'dev_write'@'172.8.%' IDENTIFIED BY 'Only2Write'
SHOW GRANTS FOR 'dev_write'@'172.8.%';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE ON powers.* TO 'dev_write'@'172.8.%' ;
补充: *.* 等於全部资料库
REVOKE ALL PRIVILEGES ON powers.* FROM 'dev_write'@'172.8.%';
DROP USER 'dev_write'@'172.8.%';
详细解释 权限意义与分类级别参考官方文件这部分-> Privileges Supported by MySQL
https://dev.mysql.com/doc/refman/8.0/en/grant.html
下一篇来带大家认识 MYSQL系统层相关纪录日志~
>>: Day12:[资料结构]Binary Tree - Traversal
CH9: 时间管理 「专业开发人员同样清楚会议的高昂成本,他们同样清楚自己的时间是宝贵的。所以,如果...
今日练习档 ԅ( ¯་། ¯ԅ) 大家好呀 ٩(ˊ〇ˋ*)و 列印我相信也是很多人会使用的一个功能,...
上一篇针对了计数器Component做了三个单元测试, Component、计数器按钮、计数器的数字...
今天的实作内容主要根据教学网站进行。 将应用程序安装到Heroku (接续Day27) 使用GIT将...
今天要学习的是如何新增和删除资料夹,一样是用昨天的 fs modules,不过在新增资料夹之前,先来...