一、mysql创建用户
mysql -u root -p 输入密码登录mysql服务器
1.所有机器都可以通过username这个用户登录到mysql服务器
CREATE USER 'username'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
2.创建指定局域网内可以登录mysql服务器的用户
CREATE USER 'username'@'172.22.22.%' IDENTIFIED WITH mysql_native_password BY '123456';
3.创建只有本机才能登录mysql服务器的用户
CREATE USER 'username'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
二、删除用户
DROP USER 'username'@'%';
三、给用户赋予指定的权限
权限列表如下:
权限 | 权限级别 | 权限说明 |
CREATE | 数据库、表或索引 | 创建数据库、表或索引权限 |
DROP | 数据库或表 | 删除数据库或表权限 |
GRANT OPTION | 数据库、表或保存的程序 | 赋予权限选项 |
REFERENCES | 数据库或表 |
|
ALTER | 表 | 更改表,比如添加字段、索引等 |
DELETE | 表 | 删除数据权限 |
INDEX | 表 | 索引权限 |
INSERT | 表 | 插入权限 |
SELECT | 表 | 查询权限 |
UPDATE | 表 | 更新权限 |
CREATE VIEW | 视图 | 创建视图权限 |
SHOW VIEW | 视图 | 查看视图权限 |
ALTER ROUTINE | 存储过程 | 更改存储过程权限 |
CREATE ROUTINE | 存储过程 | 创建存储过程权限 |
EXECUTE | 存储过程 | 执行存储过程权限 |
FILE | 服务器主机上的文件访问 | 文件访问权限 |
CREATE TEMPORARY TABLES | 服务器管理 | 创建临时表权限 |
LOCK TABLES | 服务器管理 | 锁表权限 |
CREATE USER | 服务器管理 | 创建用户权限 |
PROCESS | 服务器管理 | 查看进程权限 |
RELOAD |
服务器管理 | 执行flush-hosts, flush-logs, flush-privileges, flush-status, flush-tables, flush-threads, refresh, reload等命令的权限 |
REPLICATION CLIENT | 服务器管理 | 复制权限 |
REPLICATION SLAVE | 服务器管理 | 复制权限 |
SHOW DATABASES | 服务器管理 | 查看数据库权限 |
SHUTDOWN | 服务器管理 | 关闭数据库权限 |
SUPER | 服务器管理 | 执行kill线程权限 |
1.赋予远程用户查询权限
(1)查看所有表
GRANT SELECT ON *.* TO 'username'@'%';
(2)查看指定表
GRANT SELECT ON tablename.* TO 'username'@'%';
2.给应用添加操作数据库的权限
GRANT ALL PRIVILEGES ON tablename.* TO 'usrname'@'172.22.22.%' WITH GRANT OPTION
3.给管理员用户添加的权限
GRANT ALL PRIVILEGES ON *.* TO 'usrname'@'%' WITH GRANT OPTION;
4.其他
grant execute on procedure testdb.pr_add to ’dba’@’localhost’
grant execute on function testdb.fn_add to ’dba’@’localhost’
注意:
当赋予权限之后,需要刷新权限才能生效
flush privileges;
四、收回权限与查看权限
1.回收权限
revoke delete on *.* from 'username'@'%';
2.查看权限
show grants for 'username'@'%'