1.添加账户:
# 创建一个密码为123456的testuser账户# 若不写【identified by '123456'】则创建一个密码为空的testuser账户mysql> create user testuser identified by '123456';# 刷新权限变更mysql> flush privileges;
2.授予权限
# 为testuser账户授予本地访问所有数据库的所有权限mysql> grant all privileges on *.* to 'testuser'@'localhost' identified by '123456'; mysql> flush privileges;
命令格式:
grant privilegesCode on dbName.tableName to username@host identified by "password";
privilegesCode
表示授予的权限类型,常用的有以下几种类型: all privileges
:所有权限; select
:读取权限; delete
:删除权限; update
:更新权限; create
:创建权限; drop
:删除数据库、数据表权限。
完整的权限类型如下:
Select_priv: Y Insert_priv: Y Update_priv: Y Delete_priv: Y Create_priv: Y Drop_priv: Y Reload_priv: Y Shutdown_priv: Y Process_priv: Y File_priv: Y Grant_priv: Y References_priv: Y Index_priv: Y Alter_priv: Y Show_db_priv: Y Super_priv: Y Create_tmp_table_priv: Y Lock_tables_priv: Y Execute_priv: Y Repl_slave_priv: Y Repl_client_priv: Y Create_view_priv: Y Show_view_priv: Y Create_routine_priv: Y Alter_routine_priv: Y Create_user_priv: Y Event_priv: Y Trigger_priv: YCreate_tablespace_priv: Y
详细介绍可阅读MySQL官方文档
dbName.tableName
表示授予权限的具体库或表,常用的有以下几种选项:
*.*
:授予该数据库服务器所有数据库的所有表的权限; dbName.*
:授予dbName数据库所有表的权限; dbName.dbTable
:授予数据库dbName中dbTable表的权限。
username@host
表示授予的用户以及允许该用户登录的IP地址。其中host有以下几种类型:
localhost
:只允许该用户在本地登录,不能远程登录。 %
:允许在除本机之外的任何一台机器远程登录。 192.168.1.11
:具体的IP表示只允许该用户从特定IP登录。
identified by "password"
:表示访问权限用户的密码,如果无此语句,则默认密码为空。
查看权限授予的命令:
mysql> show grants for 'testuser';
3.删除用户
# 将刚才创建的本地访问权限的testuser用户删除drop user testuser@'localhost';