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. 权限管理
待续