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 | 服务器管理 |