1.MySQL的用户管理
MySQL的用户信息都保存在数据库mysql的user表中,因此MySQL的用户操作实际上就是对mysql.user表的增删查改的操作,下图中展示了mysql.user的表结构:
从图中可以看到,在该表中可以设置用户的所有信息,包括用户名,密码,权限等等。
Notice:password字段是通过PASSWORD('')函数生成的。
除了修改user表的方式来操作MySQL用户外,MySQL有一些额外的命令用于创建或删除MySQL用户。
2.创建用户
2.1.CREATE USER创建无权限用户
语法:CREATE USER user [IDENTIFIED BY [PASSWORD] 'password'][, user [IDENTIFIED BY [PASSWORD] 'password']] ...
示例:create user test@localhost identified by 'test';//创建一个用户名为test,密码为test的用户,该用户没有任何权限
2.2.GRANT方式创建带权限用户
语法:GRANT [ALL | [SELECT,DELETE...]] PRIVILEGES ON {databasename|*}.{tablename|*}... TO username IDENTIFIED BY password;
示例:GRANT ALL PRIVILEGES ON *.* TO test@% IDENTIFIED BY 'test';
3.删除用户
语法:DROP USER username;//username指的是带host的username,即test@localhost,如果不指定host,host就为%.
示例:DROP USER test@localhost;
4.MySQL权限说明
4.1查看某个用户的权限
mysql> show grants for root@localhost;
4.2各权限解释
权限 |
列 |
说明 |
CREATE |
Create_priv |
创建数据库和表 |
DROP |
Drop_priv |
抛弃(删除)数据库和表 |
GRANT OPTION |
Grant_priv |
数据库、表或保存的程序 |
REFERENCES |
References_priv |
未使用 |
ALTER |
Alter_priv |
修改表和索引 |
DELETE |
Delete_priv |
表 |
INDEX |
Index_priv |
创建或抛弃索引 |
INSERT |
Insert_priv |
向表中插入新行 |
SELECT |
Select_priv |
检索表中的记录 |
UPDATE |
Update_priv |
修改现存表记录 |
CREATE VIEW |
Create_view_priv |
视图 |
SHOW VIEW |
Show_view_priv |
视图 |
ALTER ROUTINE |
Alter_routine_priv |
保存的程序 |
CREATE ROUTINE |
Create_routine_priv |
保存的程序 |
EXECUTE |
Execute_priv |
保存的程序 |
FILE |
File_priv |
读或写服务器上的文件 |
CREATE TEMPORARY TABLES |
Create_tmp_table_priv |
服务器管理 |
LOCK TABLES |
Lock_tables_priv |
服务器管理 |
CREATE USER |
Create_user_priv |
服务器管理 |
PROCESS |
Process_priv |
查看服务器中执行的线程信息或杀死线程 |
RELOAD |
Reload_priv |
重载授权表或清空日志、主机缓存或表缓存 |
REPLICATION CLIENT |
Repl_client_priv |
服务器管理 |
REPLICATION SLAVE |
Repl_slave_priv |
服务器管理 |
SHOW DATABASES |
Show_db_priv |
服务器管理 |
SHUTDOWN |
Shutdown_priv |
关闭服务器 |
SUPER |
Super_priv |
服务器管理 |