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-10-10 10:09:11

MySQL的用户和权限介绍的相关文章

MySQL 数据库用户和权限管理

MySQL 数据库用户和权限管理 技能目标 掌握MySQL 用户管理 添加管理用户 修改密码及忘记密码修改 用户授权 数据库是信息系统中非常重要的环节,合理高效的对它进行管理是很重要的工作.通常是由拥有最高权限的管理员创建不同的管理账户,然后分配不同的操作权限,把这些账户交给相应的管理人员使用 用户管理 1: 新建用户 新建用户的命令格式如下 CREATE USER 'username'@'host' [IDENTIFIED BY [PASSWORD]'password'] #大写是固定格式大括

Linux下给mysql创建用户分配权限

1.新建用户 //登录MYSQL @>mysql -u root -p @>密码 //创建用户 mysql> insert into mysql.user(Host,User,Password) values(‘localhost’,'jeecn’,password(‘jeecn’)); //刷新系统权限表 mysql>flush privileges; 这样就创建了一个名为:jeecn  密码为:jeecn  的用户. //退出后登录一下 mysql>exit; @>

Mysql新增用户,权限管理

MySQL 赋予用户权限命令的简单格式可概括为:grant 权限 on 数据库对象 to 用户 一.grant 普通数据用户,查询.插入.更新.删除 数据库中所有表数据的权利. grant select on testdb.* to [email protected]'%' grant insert on testdb.* to [email protected]'%' grant update on testdb.* to [email protected]'%' grant delete o

mysql 给用户赋值权限

解决办法 grant all privileges on *.* to [email protected] identified by '1'; flush privileges; 拿 joe 1 登陆 附: mysql> grant 权限1,权限2,-权限n on 数据库名称.表名称 to 用户名@用户地址 identified by '连接口令'; 权限1,权限2,-权限n代表select,insert,update,delete,create,drop,index,alter,grant,

MySQL之用户和权限管理

MySQL权限管理 权限类别: 管理类 程序类 数据库级别 表级别 字段级别 MySQL用户和权限管理 管理类: CREATE TEMPORARY TABLES CREATE USER FILE SUPER SHOW DATABASES RELOAD SHUTDOWN REPLICATION SLAVE REPLICATION CLIENT LOCK TABLES PROCESS 程序类: FUNCTION.PROCEDURE.TRIGGER CREATE ALTER DROP EXCUTE 库

mac操作系统mysql创建用户及权限

1.创建用户 #foo表示你要建立的用户名,后面的123表示密码,#localhost限制在固定地址localhost登陆CREATE USER [email protected] IDENTIFIED BY 'jice-1.0';2.授权 GRANT privileges ON databasename.tablename TO 'username'@'host'说明: privileges - 用户的操作权限,如SELECT , INSERT , UPDATE 等.如果要授予所的权限则使用

ubuntu mysql 编辑用户和权限 允许远程访问

一.新建用户 CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 二.编辑权限 GRANT ALL ON *.* TO 'username'.'host' IDENDIFIED BY 'password'; #刷新权限 flush privileges; 三.远程访问 1.编辑mysql配置文件 vi /etc/mysql/my.cnf 注释 bind = 127.0.0.1 四.重启服务器 service mysql restart

mysql创建用户分配权限

version:6.7.6+ 1.创建用户: create user username identified by 'myPassword'; 或 create user  'test'@'127.0.0.1' ; 2.修改密码: alter user test identified by 'test'; 3.设置权限 grant all privileges on mydb.* to 'test'@'%' identified by 'test'; 给 mydb 库 * (所有对象) all

mysql给用户添加权限

mysql>GRANT SELECT,INSERT,UPDATE,DELETE ON [db_name].* TO [username]@[ipadd] identified by '[password]'; [username]:远程登入的使用者代码 [db_name]:表示欲开放给使用者的数据库称 [password]:远程登入的使用者密码 ep: mysql> GRANT SELECT,INSERT,UPDATE,DELETE ON xxx.* TO " identified