MySQL DBA MySQL用户管理(四)

MySQL用户管理

   理解MySQL连接和查询流程

   查询MySQL账户级验证

   创建和修改删除账户

    授权、修改和撤销用户权限

     禁用验证控制

MySQL常用client命令及GUI工具推荐

用户名忘了怎么处理?

实际工作中用户名和密码需要注意什么?

账号安全

 

账户管理的重要性

在MySQL中可以通过账户控制允许或不允许用户执行操作

  可以精细分配权限给不同职能的用户

   避免使用root账户

        应用不能直接使用root

        防止维护期间出错

   限制特定权限账户确保数据完整性

       允许特定授权账户完成期工作

        阻止未经授权的用户访问超出其特权的数据

 

查看用户账号 :mysql.user

账号验证:mysql_native_password

 

用户优先精确匹配:'larry'@'%','larry'@'192.168.114.%','larry'@'192.168.114.119';

select user(),current_user();

user()连接用户

current_user() 创建用户

block特定ip连接  processlist host

alter user  xxx lock;

 

设置密码

1.create user ... idengtified by '';

2.set password for xxx;

3.mysqladmin password

4.alter user ...  (推荐)

5.update user set

6.grant ...identified by

authentication_string 字典

 

expire

help alter user

alter user current_user() password expire;

 

lock

alter user current_user() account lock;

alter user current_user() account unlock;

 

用户权限

只读用户

开发账号

管理账号

 

权限

file

process

supper

with grant option  -- 级联授权

 

show privileges;

最小权限授权

show grants for

mysqladmin reload·  --flash privileges;

 

 

MySQL8.0用户  --不用升级driver的处理方式

[mysqld]

default_authentication_plugin=mysql_native_password

character_set_server=utf8

================================

set names utf8;

create user 'xxx'@'xxx' idengtified with mysql_native_password by '';

grant all privileges on *.* to 'xxx'@'xxx';

create database if exists mydb collate 'utf8_general_ci';

 

密码忘记的处理

禁用验证控制

skip-grants-table 的风险

同时家skip-network

 

cp user.* /path/

update

cp xxx

chown mysql:mysql user.*

 

1.重启

2.kill -HUP `pidof mysqld`

 

select concat('*',upper(sha1(unhex(sha1('pwd'))))) as password,password('pwd');

echo -n "pwd"|sha1sum|cut -c1-40|xxd -p -r|sha1sum|cut -c1-40|tr '[a-z]' '[A-Z]' 8ASDFAS9ASDFASDF9F9DSFFDSA 

 

strings user.MYD

8.0账号更安全

 

skip-name-resolve

 

posted @ 2019-06-30 16:03  geek_ace  阅读(1194)  评论(0编辑  收藏  举报