MySQL入门很简单: 12 MYSQL 用户管理

1. 权限表

安装MySQL会自动安装一个名为mysql的数据库,存储权限表: user表, db表,host表,table_priv表,columns_priv表,proc_priv表等。

1)user表 :39个字段,分为四类——用户列,权限列,安全列,资源控制列

用户列: Host, User,Password, 这三个字段决定用户能否登陆;

权限列:以priv结尾的字段, 决定用户的权限;

安全列:

资源控制列:

 

2.账户管理

1)用户登录和退出

mysql -h hostname|hostIP -P port -u username -p DatabaseName -e "SQL语句"

 

2)新建普通用户

第一种:CREATE USER新建普通用户

user表示新建用户的账户, user由用户名(User)和主机名(Host)构成,IDENTIFIED BY用来设置用户密码

CREATE USER user [IDENTIFIED BY [PASSWORD] 'password' ]
                      [, user [IDENTIFIED BY [PASSWORD] 'password' ]]...

例子: CREATE USER 'test'@'localhost' IDENTIFIED BY 'test';

第二种:INSERT语句新建普通用户

INSERT INTO mysql.user(Host, User, Password) values ('hostname', 'username', PASSWORD('passward') );

第三种: GRANT语句新建普通用户

GRANT priv_type ON databases.table
TO user [ IDENTIFIED BY [PASSWORD] 'password']
[, user [ IDENITIFIED BY [PASSWORD] 'password']...

3) 删除普通用户

第一种:DROP USER

DROP USER user [,user] ...;

例子: DROP USER 'test2@localhost';

第二种:DELETE

DELETE FROM mysql.user WHERE Host='hostname' AND User='username';

4) root用户修改自己的密码

第一种 :mysqladmin命令

mysqladmin -u username -p password "new_password";

第二种:修改mysql数据库下的user表

UPDATE mysql.user SET Password=PASSWORD("new_password")
WHERE User="root" AND Host="localhost";

执行UPDATE语句后,需要执行FLUSH PRIVILEGES加载权限;

第三种:使用SET语句修改root用户的密码

SET PASSWORD=PASSWORD("new_password");

5)root用户修改普通用户密码

第一种:SET语句修改普通用户密码

SET PASSWORD FOR 'username'@'hostname'=PASSWORD("new_password");

第二种:修改mysql数据率下的user表

UPDATE mysql_user SET Password=PASSWORD("new_password")
WHERE User='username' AND Host='hostname'';

第三种:GRANI语句修改普通用户密码

GRANT priv_type ON databases.table
TO user [ IDENTIFIED BY [PASSWORD] 'password']

6)普通用户修改密码

SET PASSWORD=PASSWORD('new_password');

7)root用户密码丢失的解决办法

3. 权限管理

待续

 

原文地址:https://www.cnblogs.com/zxqstrong/p/5403811.html