Skip to content

MySQL管理

当我们做项目开发时,可以根据不同的开发人员,赋给他们相应的Mysql操作权限,因此,我们需要进行用户管理和权限管理。Mysql数据库的管理人员(root),根据需要创建不同的用户,赋给相应的权限,供人员使用


用户管理

mysql中的用户,都存储在系统数据库mysql中的user表中,该表中重要的字段说明:

  • host:允许登录的”位置“,localhost表示该用户只允许本机登录,也可以指定ip地址,如192.168.1.96
  • user:用户名
  • authentication_string:密码,是通过mysqlpassword()函数加密后的密码

创建用户

创建用户的基本语法:create user '用户名'@'允许登录的位置' identified by '密码'

创建用户,同时指定密码

不同的数据库用户,登录到DBMS后,根据相应的权限,可以操作的数据库和数据对象(表,视图,触发器)都是不同的

在创建用户时,如果不指定Host(允许登录的位置),则为%,表示所有的IP都有连接的权限

可以指定具体的IP地址:create user 'xxx'@'192.168.1.%',表示用户在192.168.1.*ip段中,可以连接到该mysql

登录用户

创建完用户之后,我们可以将其用户名和密码进行数据库的连接登录,登录成功后就可以看到对应数据库的内容了

用户修改密码

  • 修改自己的密码:set password = password('新密码');
  • 修改他人的密码(需要有修改用户密码的权限)set password for '用户名'@'登录位置' = password('新密码');

删除用户

删除用户的基本语法:drop user '用户名'@'允许登录的位置';

在删除用户时,如果Host不是%,需要明确指定'用户名'@'允许登录的位置'


权限管理

我们可以通过root来给其他用户赋予相应的权限,从而进行权限的管理,mysql中常见的权限有:

权限权限级别权限说明
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服务器管理创建用户权限
RELOAD服务器管理执行flush-hosts, flush-logs, flush-privileges, flush-status, flush-tables, flush-threads, refresh, reload等命令的权限
PROCESS服务器管理查看进程权限
REPLICATION CLIENT服务器管理复制权限
REPLICATION SLAVE服务器管理复制权限
SHOW DATABASES服务器管理查看数据库权限
SHUTDOWN服务器管理关闭数据库权限
SUPER服务器管理执行kill线程权限

给用户授权

基本语法:grant 权限列表 on 库.对象名 to '用户名'@'登录位置'

如果是创建用户的时候,还需要加上identified by '密码'

权限列表,多个权限用逗号分开,如:select, delete, create on ...

将所有的权限赋给用户:grant all on ...

库.对象名可以使用*.*表示本系统中的所有数据库的所有对象(表、视图、存储过程)

库.*表示某个数据库中的所有数据对象(表、视图、存储过程)

如果权限没有生效,可以执行权限生效指令:FLUSH PRIVILEGES;

回收用户权限

基本语法:revoke 权限列表 on 库.对象名 from '用户名'@'登录位置'

Released under the MIT License.