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 ...
随机推荐
- Django 1.11 网站分页设计
参考网址:https://www.cnblogs.com/kongzhagen/p/6640975.html
- cf1179D
cf1179D 链接 cf 思路 csdn 很玄学,正解是斜率优化dp,但被一个奇妙的贪心过了. 代码 #include <bits/stdc++.h> #define ll long l ...
- shell编程题(五)
打印root可以使用可执行文件数. echo "root's bins: $(find ./ -type f | xargs ls -l | sed '/-..x/p' | wc -l)&q ...
- 安卓设备连接Mac的简单方法
mac设备是苹果出品的桌面系统,以高冷而闻名,不同于我们平常使用的windows系统,mac系统对软件硬件的兼容性很差,将iOS 设备(iPhone.iPad和iPod)连接至Mac是一件很简单的事, ...
- ubuntu容器化开发系统配置 相关下载地址(laravel)
ubuntu64位 18.04(开发使用桌面版本) Nginx PHP7.3 开发工具:PHPStorm 其他技术栈:laravel.VUE.NodeJs https://laravel.com/ h ...
- Spring Cloud @RefreshScope 原理是什么?
要清楚RefreshScope,先要了解Scope Scope(org.springframework.beans.factory.config.Scope)是Spring 2.0开始就有的核心的概念 ...
- CentOS环境设置Hbase自启动
1.在/etc/init.d/目录创建hbase文件 #!/bin/bash # chkconfig: #export JAVA_HOME=/usr/local/jdk1.8.0_191 HBASE_ ...
- 【发现】visualvm是jdk自带的一款监控工具
visualvm是jdk自带的一款监控工具.它提供了一个可视界面,用于查看 Java 虚拟机上运行的基于 Java 技术的程序的详细信息.VisualVM 对 Java Development Kit ...
- js密码加密
1.base64加密:在页面中引入base64.js文件,调用方法为: <!DOCTYPE HTML> <html> <head> <meta charset ...
- mysql密码中有特殊字符&在命令行下登录
在服务器上,通常为了快速登录数据库,我们会使用mysql -hhost -uusername -ppassword db的方式登录数据库,如果密码中没有特殊字符&,会直接进入数据库sql命令行 ...