浅析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

 

 

登录方式二:

直接在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

时间: 2024-09-01 04:52:34

浅析MySQL的用户和权限学习总结的相关文章

设置mysql数据库用户的权限方法总结

格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码" 如,增加一个用户user1密码为password1,让其可以在本机上登录, 并对所有数据库有查询.插入.修改.删除的权限 我的mysql安装在c:/mysql 一.更改密码 第一种方式: 1.更改之前root没有密码的情况 c:/mysql/bin>mysqladmin -u root password "your password" 2.更改之前root有

mysql数据库用户和权限管理记录

一.MySQL用户的基本说明: 1.1 用户的基本结构 MySQL的用户:用户名@主机 ■用户名:16个字符以内 ■主机:可以是主机名.IP地址.网络地址等 主机名:www.111cn.net,localhost IP:192.168.0.1 网络地址:172.16.0.0/255.255.0.0 主机还支持通配符:%和_ 172.16.%.% %.111cn.net 注意:对于包含了主机名的用户,MySQL会尝试反解析主机名,此时可能会造成连接非常慢,如果反解析的IP地址与连接点的地址不同,还

如何用phpmyadmin设置mysql数据库用户的权限_php实例

一.首先您需要在服务器上安装配置 phpMyAdmin 安装配置方法详见: http://www.jb51.net/article/15330.htm 安装好以后,来到 phpMyAdmin 的首页如下图所示: 二.创建用户(如何您之前已经创建好用户,可以省略这一步) 点击上图所示的权限后,可以看到如下图所示: 点击"添加新用户"这个连接,添加一个新的数据库用户名 如下图所示: 开发实例">三.权限设置 如下图所示: 编辑 hellen 这个用户的权限 如下图所示: 其

MySQL验证用户权限的方法_Mysql

知识归纳 因为MySQL是使用User和Host两个字段来确定用户身份的,这样就带来一个问题,就是一个客户端到底属于哪个host.如果一个客户端同时匹配几个Host,对用户的确定将按照下面的优先级来排 基本观点越精确的匹配越优先 Host列上,越是确定的Host越优先,[localhost, 192.168.1.1, wiki.yfang.cn] 优先于[192.168.%, %.yfang.cn],优先于[192.%, %.cn],优先于[%] User列上,明确的username优先于空us

MySQL用户和权限管理

MySQL用户权限表 MySQL的认证是"用户"加"主机"而权限是访问资源对象,MySQL服务器通过权限表来控制用户对数据库的访问,权限表存放在mysql数据库中,由mysql_install_db脚本初始化.存储账户权限信息表主要有:user,db,tables_priv,columns_priv,procs_priv这五张表(5.6之前还有host表,现在已经把host内容整合进user表),五张表其含义分别是: user表 user表时MySQL中最重要的一个

MySQL中基本的用户和权限管理方法小结_Mysql

MySQL 默认有个root用户,但是这个用户权限太大,一般只在管理数据库时候才用.如果在项目中要连接 MySQL 数据库,则建议新建一个权限较小的用户来连接. 在 MySQL 命令行模式下输入如下命令可以为 MySQL 创建一个新用户: CREATE USER username IDENTIFIED BY 'password'; 新用户创建完成,但是此刻如果以此用户登陆的话,会报错,因为我们还没有为这个用户分配相应权限,分配权限的命令如下: GRANT ALL PRIVILEGES ON *.

Mysql下建立用户授权权限例子

用户授权在mysql中使用grant命令就可以了,我相信各位都会有了解过了,下面小编为各位介绍一个Mysql下建立用户授权权限例子,希望本文章对各位有帮助.     建立用户,授权数据库: mysql> create user 'byrd'@'localhost' identified by 'admin123';    #建立主机为localhost,密码为admin123的用户byrd Query OK, 0 rows affected (0.05 sec) mysql> show gra

【Linux】Linux用户、用户组、文件权限学习笔记

原文地址:http://www.sourcejoy.com/other_dev_tech/linux-user-and-file-manage.html 作者:HaiHai 发布时间:August 12, 2010 分类:综合技术 最近打算更仔细学习一下linux操作系统.先是恶补了一下用户.用户组.文件权限这三样比较重要的知识. 学习这几样东西,得先掌握linux的权限系统相关知识. linux的权限系统主要是由用户.用户组和权限组成. 用户就是一个个的登录并使用linux的用户.linux内

MySQL 用户与权限管理

    MySQL权限系统的主要功能是证实连接到一台给定主机的用户,并且赋予该用户在数据库上的相关DML,DQL权限.MySQL存取控制包含2个阶段,一是服务器检查是否允许你连接:二是假定你能连接,服务器检查你发出的每个请求.看你是否有足够的权限实施它.本文主要描述MySQL权限系统相关的用户创建.授权.撤销权限等等. 1.获取有关权限管理的帮助 root@localhost[(none)]> help Account Management For more information, type