MySQL user
mysql
2016-07-22

MySQL的用户管理

MySQL的用户信息都保存在数据库mysql的user表中,因此MySQL的用户操作实际上就是对 mysql.user表的增删查改的操作,下图中展示了mysql.user的表结构:

从图中可以看到,在该表中可以设置用户的所有信息,包括用户名,密码,权限等等。 Notice:password字段是通过PASSWORD('')函数生成的。除了修改user表的方式来操作MySQL 用户外,MySQL有一些额外的命令用于创建或删除MySQL用户。

创建用户

CREATE USER创建无权限用户

语法:

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

示例:

    create user test@localhost identified by 'test';//创建一个用户名为test,密码为test的用户,该用户没有任何权限


GRANT方式创建带权限用户

语法:

    GRANT [ALL | [SELECT,DELETE...]] PRIVILEGES ON {databasename|*}.{tablename|*}... TO username IDENTIFIED BY password;

示例:

    GRANT ALL PRIVILEGES ON . TO test@% IDENTIFIED BY 'test';

删除用户

语法:

    DROP USER username;//username指的是带host的username,即test@localhost,如果不指定host,host就为%.

示例:

    DROP USER test@localhost;

MySQL权限说明

查看某个用户的权限

mysql> show grants for root@localhost;

各权限解释

权限 说明
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` 服务器管理
其它文章