教程集 www.jiaochengji.com
教程集 >  数据库  >  mysql  >  正文 浅析MySQL的用户和权限学习总结

浅析MySQL的用户和权限学习总结

发布时间:2023-04-29   编辑:jiaochengji.com
教程集为您提供浅析MySQL的用户和权限学习总结等资源,欢迎您收藏本站,我们将为您提供最新的浅析MySQL的用户和权限学习总结资源
MySQL用户权限涉及到数据库的安全与保密,是每一个DBA都应该熟练掌握的知识。下面我们来讲讲MySQL的用户和权限的相关知识,希望对您有用。

一、关于MySQL权限的几点常识:

1、MySQL的权限系统主要用来验证用户的操作权限。

2、在MySQL内部,权限信息存放在MySQL数据库的granttable里。当mysql启动后,granttable里的信息会写入内存。

3、MySQL 使用user name 加 host name 来作为标识符。

通过这种标识符,可以用来区分不同host上的相同的user name。

4、MySQL 权限控制有2种策略:

1)根据密码是否正确来控制客户端的连接。

2)假设可以正常connect,server还可以检查每个satement是否有权限去执行。如果只有某张表的select 权限,就不能进行drop 操作。

5、如果用户的权限改变,当前已连接的会话用户不会受影响,下次登录才会生效。

二、关于MySQL的几个有关权限表的含义:

user:用户账号、全局权限

db:库级别权限

host:废弃

tables_priv:表级别权限

colums_priv:列级别权限

procs_priv:存储过程和存储函数相关的权限

proxies_priv:代理用户权限

三、MySQL用户账号的创建规则

用户名@主机

用户名:16字符以内

主机:

主机名:www.test.com,mysql

IP:192.168.2.1

网络地址:192.168.0.0/255.255.0.0

通配符:%,192.168.%.%,%.test.com

四、MySQL的用户权限级别

服务管理类:super

库:CREATE

表:DELETE、ALTER

列:INSERT、SELECT、UPDATE

更多级别可参考MySQL官方文档

五、与权限相关的几个命令

GRANT 权限,... ON [对象类型] db.{table|routine} TO 'username'@'host' [INDENTIFIED BY 'password'];

REVOKE 权限,... ON [对象类型] db.{table|routine} FROM 'username'@'host';

SHOW GRANTS FOR 'username'@'host';

CREATE USER 'username'@'host' [IDENTIFIED BY 'password'];

DROP USER 'username'@'host';

RENAME USER old_name TO new_name;

六、权限的操作命令举例

查看当前数据库的所有用户:

select user,host,password from mysql.user;

给用户赋予super权限(super和ALL PRIVILEGES都可以):

GRANT super ON *.* TO 'mysql'@'localhost';

GRANT ALL PRIVILEGES ON *.* TO 'mysql'@'localhost';

删除用户的super权限(super和ALL PRIVILEGES都可以):

REVOKE super ON *.* FROM 'mysql'@'localhost';

REVOKE ALL PRIVILEGES ON *.* FROM 'mysql'@'localhost';

查看赋予用户的权限

SHOW GRANTS FOR 'mysql'@'localhost';

七、MySQL的问题处理

1、MySQL登录密码忘记时的恢复操作

启动mysql_safe时传递两个参数:

--skip-grant-tables 跳过授权表

--skip-networking 为了安全,防止网络登录

登录方式一:

修改/etc/init.d/mysql

 

wKiom1RytyujvuBPAACcs_s8lZQ687.jpg

 

登录方式二:

直接在my.cnf配置

[mysqld]

skip-grant-tables

skip-networking

而后修改密码:

通过更新授权表方式直接修改其密码,而后移除此两个选项重启服务器

UPDATE user SET PASSWORD=PASSWORD('123456') WHERE User='root'

2、客户端连接MySQL数据库速度慢的问题

直接在my.cnf配置,关闭DNS的反向解析参数

[mysqld]

skip-name-resolve

您可能感兴趣的文章:
浅析MySQL的用户和权限学习总结
如何给mysql用户分配权限
mysql用户访问授权实例浅析
mysql数据库用户与权限管理学习笔记
导出mysql所有用户权限的shell脚本
mysql Grant命令(mysql用户权限设置)详解
设置mysql数据库用户的权限方法总结
mysql添加用户并授权的命令(示例)
ubuntu12.04下mysql用户授权
MySql创建用户并授权的实例分析

[关闭]
~ ~