天天看点

菜鸟学Linux 第076篇笔记 mysql用户管理

菜鸟学Linux 第076篇笔记 mysql用户管理

包含内容

创建、删除、修改用户

授权、撤消授权用户

mysql用户密码忘记如何重置

User Management

用户

密码 password();加密机制MySQL独有的

用户名@主机

账号:认证

权限

授权

MySQL将授权表加载到内容进行管理

用户和权限表

user 用户账号、全局权限等

db 库级别的权限

host 现已经废弃

tables_priv 表级别权限

columns_priv 列级别权限

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

proxies_priv 代理用户权限

MySQL用户账号

用户名16字符以内 

主机 

主机名 www.mysky.com mysql

IP 192.168.11.122

网络地址 172.16.0.0/255.255.0.0

通配符 %任意字段任意个  _任意单个字符

192.168.%.%

%.mysky.com

--skip-name-resolve  跳过名称解析

权限级别

全局级别 SUPER, 

库级别

SELECT * FROM db\G;

表级别 DELETE ALTER TRIGGER

列级别 SELECT, INSERT, UPDATE

存储过程和存储函数

临时表:内存表

heap: 16MB

触发器: 主动数据库

INSERT, DELETE, UPDATE

创建用户

CREATE USER 'user_name'@'hostname' [INDENTIFIED BY 'password'];

INSERT INTO mysql.user

FLUSH PRIVILEGES;

删除用户

DROP USER 'username'@'host';

修改用户名

RENAME USER older_name TO new_name   (这个里边包含@主机哈)

GRANT

GRANT ALL PRIVILEGES [ object_type ] ON db.* TO username@'%' [WITH with_option..] ;

object_type:

    TABLE

  | FUNCTION

  | PROCEDURE

with_option:

    GRANT OPTION

  | MAX_QUERIES_PER_HOUR count

  | MAX_UPDATES_PER_HOUR count

  | MAX_CONNECTIONS_PER_HOUR count

  | MAX_USER_CONNECTIONS count

  count执行命令时要替换成数值

        GRANT CREATE ON cactidb.* TO cactiuser@'%';  (创建权限)

        GRANT INSERT ON cactidb.* TO cactiuser@'%';  (插入权限)

        GRANT UPDATE(Age) ON cactidb.testtb TO cactiuser@'%'; (授权修改到列级别)

        GRANT SUPER ON *.* TO cactiuser@'%';  

        (注意有些授权需要重新建立会话才可以使授权生效)

SHOW GRANTS FOR cactiuser@'%';

撤消授权

        REVOKE SELECT ON cactidb.* FROM 'cactiuser'@'%';   

        (一般读权限可以给但写权限要慎重)

忘记管理员密码如何处理

1.关闭当前MySQL

# service mysqld stop

2.编辑启动脚本

# vim /etc/init.d/mysqld

在这里找到此行$bindir/mysqld_safe --datadir="$datadir" 

在mysqld_safe后空格添加 --skip-grant-tables --skip-network

保存退出

3.启动mysqld

# service mysqld start

此时登录mysql时便不需要输入密码

4.进入数据库后修改mysql的root密码

UPDATE user SET Password=PASSWORD('1234') WHERE User='root'; 

(同时更改三个root密码)

5.修改好后停止mysqld,然后再将刚刚加的字符去除,再重新启动即恢复正常

(此时便可使用新配置的mysql密码来进行登录mysql服务器)

SET PASSWORD FOR 'root'@'localhost'=PASSWORD('1234');  

(注意在使用了跳过权限控制选项情况下,此条语句不可修改用户密码)

--skip-grant-tables 跳过权限控制

--skip-networking 不可以使用网络登录

本文转自Winthcloud博客51CTO博客,原文链接http://blog.51cto.com/winthcloud/1891183如需转载请自行联系原作者

Winthcloud