mysql数据库之用户管理和权限

mysql服务器进程在启动的时候会读取这6张表,并在内存中生成授权表,所以这几个文件是直接加载进内存的。

以后后续的任何用户登录及其访问权限的检查都通过检查这6张表来实现的。通过访问内存上所生成的结构信息来完成。

user :包含用户账号、全局权限以及其他的非权限字段

db :数据库级别权限的定义

host :废弃!

tables_priv :表级别权限

columns_priv :列级别权限

procs_priv :存储过程和存储函数相关的权限

proxies_priv :代理用户权限

 

用户账号

    用户名@主机

         用户名:16字符以内

           主机:主机名、IP、网络地址、通配符(%_

--skip-name-resolve :跳过主机名解析(在登录时使用)

 

权限级别

全局级别:

库级别

表级别

列级别

存储过程和存储函数

 

创建用户

create  权限   用户名@主机名   identified   by  "密码"

flush  privileges;  重读授权表,读取用户信息

show  grants  for  用户名@'主机名'; 查看用户账户信息

 

修改管理员密码

退出并关闭mysql :service  mysql   stop

手动修改启动文件:/etc/init.d/mysql  修改第283

添加:

--skip-grant-tables :跳过授权表

--skip-networking :跳过网络

 

启动mysql服务:service mysql  start 

use  mysql   :指定数据库

select  User,Host,Password  from  user;    :查看用户表

update  user   set   Password=PASSWORD('密码')  where  User='root';  :手动修改密码

退出数据库,关闭服务!

修改/etc/init.d/mysql,把添加的那两行删除

再重新启动服务,就可以登陆了

posted @ 2019-08-02 17:33  え稚始گ  阅读(173)  评论(0编辑  收藏  举报