Azure
Azure
发布于 2024-04-15 / 9 阅读
0
0

mysql 用户权限篇

1、仅新建用户(只新建一个用户,不授予任何权限)

create user 'username'[@'ip'] identified by 'password';
-- username 新建用户的用户名-- password 新建用户的密码-- ip 允许连接的ip地址,如不限制使用'%'

2、授权给用户(给已存在的用户授权)

grant all on db_name.table_name to 'username';
-- all 指所有权限,细分权限见附件表1-- db_name 数据库名 可使用*代表全部表-- table_name 数据表名 可使用*代表全部表-- username 用户名

3、新建用户并授权(相当于前面两者的合并版)

grant all privileges on db_name.table_name to 'username'@'ip' identified by 'password' [with grant option];
-- db_name 数据库名 可使用*代表全部表-- table_name 数据表名 可使用*代表全部表-- username 用户名-- ip 允许连接的ip地址,如不限制使用'%'-- password 用户密码-- with grant option 允许权限转让,即:被授权用户可以将权限再授给其他用户

4、撤销用户权限

revoke all on db_name.table_name from username;
-- all 指所有权限,细分权限见附件表1-- db_name 数据库名 可使用*代表全部表-- table_name 数据表名 可使用*代表全部表-- username 用户名

5、刷新权限

flush privileges;

6、修改及删除用户

 rename user 'username'@'ip' to 'new_username'@'new_ip';
 drop user 'username'@'ip';
 -- 有关用户相关操作都可以使用mysql.user表,见附件表2

7、修改用户密码

set password for 'username'@'ip'=password('new_password');-- 已废弃,后期版本会移除-- 有关用户相关操作都可以使用mysql.user表,见附件表2alter USER 'username'@'ip' identified by 'new_password';-- 5.7及以后版本推荐alter user user() identified by 'new_password';-- user()获取当前用户,如:root@localhost-- 如果忘记root密码,进入mysql服务器,修改my.cnf配置文件,在[mysqld]下添加skip-grant-tables,重启mysql后root用户可无需密码进入进行修改密码操作,记得改回来哦

8、设置过期密码

alter user 'username'@'ip'  identified by 'password' password EXPIRE ;-- 设置密码已过期alter user 'username'@'ip'  identified by 'password' password EXPIRENEVER;-- 设置密码用不过期alter user 'username'@'ip'  identified by 'password' password EXPIRE 
DEFAULT;-- 设置密码以默认时间过期,取mysql默认参数设置的alter user 'username'@'ip'  identified by 'password' password EXPIRE interval 90 day;--
设置密码指定时间过期

附件表1:mysql权限细分

序号

数据类(共5个)

结构类(共12个)

管理类(共11个)

1

SELECT

CREATE

GRANT

2

INSERT

ALTER

SUPER

3

UPDATE

INDEX

PROCESS

4

DELETE

DROP

RELOAD

5

FILE

CREATE TEMPORARY TABLES

SHUTDOWN

6

SHOW VIEW

SHOW DATABASES

7

CREATE ROUTINE

LOCK TABLES

8

ALTER ROUTINE

REFERENCES

9

EXECUTE

REPLICATION CLIENT

10

CREATE VIEW

REPLICATION SLAVE

11

EVENT

CREATE USER

12

TRIGGER

附件表2:mysql内置user表结构说明

字段名

字段值

字段含义

Host

%

允许连接的主机IP,%表示无限制

User

username

用户名

Select_priv

Y

查询权限

Insert_priv

Y

插入权限

Update_priv

Y

更新权限

Delete_priv

Y

删除权限

Create_priv

Y

新建库/表权限

Drop_priv

Y

删除库/表权限

Reload_priv

Y

刷新和重新加载MySQL所用各种内部缓存,包括日志、权限、主机、查询和表

Shutdown_priv

Y

关闭MySQL服务权限

Process_priv

Y

查看其他用户的进程权限,命令:SHOW PROCESSLIST

File_priv

Y

导入导出数据到文件权限,命令:SELECT INTO OUTFILE/LOAD DATA INFILE

Grant_priv

Y

将已经授予给该用户自己的权限再授予其他用户权限

References_priv

Y

只是某些未来功能的占位符,现没有作用

Index_priv

Y

新建与删除索引权限

Alter_priv

Y

修改表结构定义

Show_db_priv

Y

查看服务器上所有数据库名称,包括用户拥有足够访问权限的数据库

Super_priv

Y

执行某些强大的管理功能,例如通过KILL命令删除用户进程,使用SET GLOBAL修改全局MySQL变量,执行关于复制和日志的各种命令

Create_tmp_table_priv

Y

创建临时表权限

Lock_tables_priv

Y

使用LOCK TABLES命令阻止对表的访问/修改权限

Execute_priv

Y

执行存储过程权限,此权限只在MySQL 5.0及更高版本中有意义

Repl_slave_priv

Y

维护复制数据库环境的二进制日志文件权限,此用户位于主系统中,有利于主机和客户机之间的通信

Repl_client_priv

Y

复制从服务器和主服务器的位置权限

Create_view_priv

Y

创建视图权限,此权限只在MySQL 5.0及更高版本中有意义

Show_view_priv

Y

查看视图或了解视图如何执行权限,此权限只在MySQL 5.0及更高版本中有意义

Create_routine_priv

Y

新建存储过程和函数权限,此权限只在MySQL 5.0及更高版本中有意义

Alter_routine_priv

Y

修改存储过程及函数权限,此权限只在MySQL 5.0及更高版本中有意义

Create_user_priv

Y

新建用户权限,命令:CREATE USER

Event_priv

Y

创建、修改和删除事件权限,此权限是MySQL 5.1.6新增的

Trigger_priv

Y

创建和删除触发器权限,此权限是MySQL 5.1.6新增的

Create_tablespace_priv

Y

创建表空间权限

ssl_type

ssl_cipher

x509_issuer

x509_subject

max_questions

0

max_updates

0

max_connections

0

max_user_connections

0

plugin

mysql_native_password

authentication_string

password

用户密码

password_expired

N

密码是否过期


评论