MySQL用户及权限
1. MySQL根据对象级别划分的权限类别:
常见的权限类别:库级别、表级别、字段级别、管理类权限、程序类权限
管理类权限:
CREATE TEMPORARY TABLES创建临时表,一般为16M;CREATE USER:创建用户权限FILE:在数据库导出某文件中,或者从文件加载至数据库中SUPER:在数据库执行管理操作的权限;跟复制、授权等相关的高级管理权限SHOW DATABASES: 一般授权给每个用户RELOAD:重新装载授权表还有其他功能SHOUTDOWN:关闭数据库权限REPLICATION SLAVE:是否能创建连接实现从服务器以复制的方式复制的权限连接至数据服务器端REPLICATION CLIENT:是否有权限从主服务器请求复制相关事件到本地,就是请求复制相关主数据库产生的时间LOCK TABLES:请求在服务器上锁表权限PROCESS:
程序类权限:
FUNCTION存储函数:CREATE,ALTER,DROP,EXCUTEPROCEDURE存储过程:CREATE,ALTER,DROP,EXCUTETRIGGER触发器:CREATE,ALTER,DROP,EXCUTECREATE FUNCTION:创建存储函数权限CREATE PROCEDURE:创建存储过程权限CREATE TRIGGER:创建触发器权限ALTER FUNCTION:修改存储函数权限ALTER PROCEDURE:修改存储过程权限ALTER TRIGGER:修改触发器权限DROP FUNCTION:删除存储函数权限DROP PROCEDURE:删除存储过程权限DROP TEIGGER:删除触发器权限EXCUTE FUNCTION:执行存储函数权限EXCUTE PROCEDURE执行存储过程权限EXCUTE TRIGGER:执行触发器权限
库和表级别的权限:TABLE,DATABASE
ALTER:可修改库或表权限;无需指明关键字,因为ALTER就代表仅对二者有效CREATE:创建库或表权限CREATE VIEW:创建视图权限DROP:删除库或表权限INDEX:创建过删除索引权限SHOW VIEW:查看视图权限GRANT OPTION:能够把自己获得的权限赠送给其他用户一个副本的权限;一般手机时不建议使用with grant option
数据操作的权限:
SELECTINSERTDELETEUPDATE
字段级别权限:
SELECT(col1,col2,...):定义查看指定字段的权限UPDATE(col1,col2,...):定义更新/改指定字段权限INSERT(col1,col2,...):定义插入指定字段的权限
注:delete删就删一行,所以delete没有字段操作
所有权限:
ALL PRIVIEGES, ALL
2. 用户权限都保存在元数据数据库中
- 元数据数据库:mysql
- 授权表:db,host,user;这三个表是限制哪些用户通过哪些主机连接到当前数据库对哪些库做访问;
columns_priv,tables_priv,procs_priv,proxies_priv:用来设定专门的权限
- 用户账号:
'USERNAME'@'HOST'- USERNAME:账号名称;
- HOST:此账号可以通过哪些客户端主机请求创建连接线程;
- %:任意长度的任意字符;
- _:任意单个字符;
skip_name_resolve=ON:跳过名称解析
- 创建用户:
CREATE USER 'user'@‘host’ [IDENTIFIED BY [PASSWORD] 'password'] [,'user'@'host' [IDENTIFIED BY [PASSWORD] 'password']...] - 重命名:
RENAME USER old_user TO new_user[,old_user TO new_user] ... - 删除用户:
DROP USER 'user'@'host' [,'user'@'host'] ... - 让MySQL重新加载授权表
FLUSH PRIVILEGES - 修改用户密码:
(1)SET PASSWORD [FOR 'user'@'host'] = PASSWORD('cleartext password');
(2)UPDATE mysql.user SET Password=PASSWORD('cleartext password') WHERE User='USERNAME' AND Host='HOST';
(3)mysqladmin -uUSERNAME -hHOST -p password 'NEW_PASS';
使其生效:FLUSH PRIVILEGES - 忘记管理员密码的解决办法:
(1) 启动mysqld进程时,使用--skip-grant-tables 和 --skip-networking 选项;CentOS 7: mariadb.serivce
CentOS 6: /etc/init.d/mysqld
(2) 通过UPDATE 命令修改管理员密码
(3) 以正常方式启动mysqld进程操作示例:以CentOS7为例
[root@localhost ~]# systemctl stop mariadb
[root@localhost ~]# vim /usr/lib/systemd/system/mariadb.service
修改如下内容:
ExecStart=/usr/bin/mysqld_safe --basedir=/usr --skip-grant-tables --skip-networking
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl start mariadb.service
[root@localhost ~]# mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.60-MariaDB MariaDB Server Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> UPDATE mysql.user SET password=PASSWORD('inspur') WHERE user='root';
Query OK, 2 rows affected (0.02 sec)
Rows matched: 3 Changed: 2 Warnings: 0 MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> EXIT
Bye
[root@localhost ~]# systemctl stop mariadb.service
[root@localhost ~]# vim /usr/lib/systemd/system/mariadb.service
修改如下内容:
ExecStart=/usr/bin/mysqld_safe --basedir=/usr
[root@localhost ~]# systemctl deamon-reload
MySQL用户及权限的更多相关文章
- Mysql 用户,权限管理的几点理解。
前两天项目数据库要移植到mysql,为此临时抓了几天很久没用的mysql. 公司的数据库比较简单,从oracle迁移到mysql很简单,但是,中间的权限管理让我感觉既简单又复杂..简单是因为网上关于m ...
- mysql 用户及权限管理 小结
MySQL 默认有个root用户,但是这个用户权限太大,一般只在管理数据库时候才用.如果在项目中要连接 MySQL 数据库,则建议新建一个权限较小的用户来连接. 在 MySQL 命令行模式下输入如下命 ...
- MySQL Study之--MySQL用户及权限管理
MySQL Study之--MySQL用户及权限管理 MySQLserver通过MySQL权限表来控制用户对数据库的訪问.MySQL权限表存放在mysql数据库里.由mysql_install ...
- 如何给mysql用户分配权限+增、删、改、查mysql用户
在mysql中用户权限是一个很重析 参数,因为台mysql服务器中会有大量的用户,每个用户的权限需要不一样的,下面我来介绍如何给mysql用户分配权限吧,有需要了解的朋友可参考. 1,Mysql下创建 ...
- 入门MySQL——用户与权限
前言: 前面几篇文章为大家介绍了各种SQL语法的使用,本篇文章将主要介绍MySQL用户及权限相关知识,如果你不是DBA的话可能平时用的不多,但是了解下也是好处多多. 1.创建用户 官方推荐创建语法为 ...
- MySQL用户与权限管理
执行mysql select 查询报错: SELECT command denied to user 'root'@'localhost' for table "xxx" 问题原因 ...
- MySql 用户 及权限操作
bin/msyql -h host -u user -p bin/mysql -u mysql -p 本地登录 如无密码按回车直接进入mySql bin/mysqladmin -u roo ...
- mysql用户管理,权限管理
mysql权限 相关操作: 授予的权限分为四组: 列权限:和表中的一个具体列相关,例如:使用update 语句更新test表中name 列的值 表权限:和一个具体的表的所有数据相关,例如:使用 sel ...
- mysql用户和权限管理
用户和权限管理 Information about account privileges is stored in the user, db, host, tables_priv, columns_p ...
- mysql 用户管理 权限控制
添加用户 insert into mysql.user(Host,User,Password) values("%","shenen",password(&qu ...
随机推荐
- 攻防世界(Ctf-Web 新手练习区)
题目:view_source 在url的前面加上个 “view-source: ”就看到flag了,或者“CTRL+U”快捷键查看源码 flag:cyberpeace{e07dcafaeeb31df2 ...
- GoldenDict词典配置
词典下载网址:http://download.huzheng.org/ 将下载后的词典解压放入 /usr/share/goldendict/dicts 下 程序设置里扫描文件夹,搜索出词典信息 设置自 ...
- iptables 常用命令示例
一.常用命令示例: 1.命令 -A, --append 范例:iptables -A INPUT -p tcp --dport 80 -j ACCEPT 说明 :新增规则到INPUT规则链中,规则时接 ...
- vue本地静态图片的路径问题解决方案
不少人在vue的开发中遇到这样一个问题: img的src属性绑定url变量,然而图片加载失败. 大部分的情况中,是开发者使用了错误的写法,例如: <img src="{{ imgUrl ...
- javascript获取时间戳的方法
javascript获取时间戳的方法<pre> START = new Date().getTime();</pre>这个是毫秒 除以1000就是秒啦
- HashMap 统计一个字符串中每个单词出现的次数
HashMap 统计一个字符串中每个单词出现的次数 import java.util.HashMap; import java.util.Map; public class Test { public ...
- JavaSE 面试题: 类初始化和实例初始化等
JavaSE 面试题 类初始化和实例初始化等 class Father { private int i = test(); private static int j = method(); stati ...
- 【chromium】 Chromium OS的oom机制
前一段时间,运行在Chromium OS上的一个相机应用经常会自己崩溃,进程戛然而止,测试过程中发现使用的内存以肉眼可见的内存增长,当增长到1G左右,应用窗口突然消失,虽然原因不明,但是能猜到个大概, ...
- 用结构体解析Pascal字符串
来源:https://www.cnblogs.com/qiuyuwutong/p/8708844.html 1.什么是柔性数组? 柔性数组既数组大小待定的数组, C语言中结构体的最后一个元素可以是大小 ...
- Go语言入门——hello world
Go 语言源代码文件扩展名是.go. 知识点:1. go语言代码的第1行必须声明包2. 入口的go语言代码(包含main函数的代码文件)的包必须是main,否则运行go程序会显示go run: can ...