MySQL权限与安全管理之权限表与账户管理
目录
- MySQL权限与安全管理之权限表与账户管理
- 权限表
- user表
- db表
- tables_priv表和columns_priv表
- procs_priv表
- 账户管理
- 登录和退出MySQL服务器
- 新建普通用户
- 删除普通用户
- root用户修改自己的密码
- root用户修改普通用户的密码
MySQL权限与安全管理之权限表与账户管理
MySQL用户可以分为root用户和普通用户。root用户是超级管理员,拥有所有权限,包括创建用户,删除用户和修改用户的密码等管理权限;普通用户只拥有被授予的各种权限。
权限表
MySQL服务器通过权限表来控制用户对数据的访问,权限表存放在MySQL数据库中,由MySQL_install_db脚本初始化。存储账户权限信息的表主要有user、db、host、table_priv、columns_priv和procs_priv.
user表
user表记录允许连接到服务器的账号信息,里面的权限是全局级的。
用户列
user表的用户列包括Host、User、authentication_string,分别表示主机名、用户名和密码。用户连接服务器,输入的账户信息中的用户名、主机名和密码三值与User表中对应匹配的时候才允许建立连接。
权限列
决定用户权限。包括查询权限、修改权限等普通权限,还包括了关闭服务器、超越权限和加载用户等高级权限。普通权限用于操作数据库;高级权限用于数据库管理。
user表中对应的权限是针对所有用户数据库的。字段值的类型为ENUM
,默认值为N。如果要修改权限,可以使用GRANT语句或UPDATE语句更改user表的字段来修改用户对应的权限。
安全列
安全列只有六个字段,两个是ssl相关的,两个是x509相关的,另外两个是授权插件相关的。ssl用于加密;x509标准可用于标识用户;Plugin字段标识可以用于验证用户身份的插件。可以通过SHOW VARLABLES LIKE 'have_openssl'
语句来查询服务器是否支持ssl功能。
资源控制列
资源控制列:限制用户使用的资源
(1)max_questions----用户每小时允许执行的查询操作次数。
(2)max_updates----用户每小时允许执行更新的操作次数。
(3)max_connections----用户每小时允许执行的连接操作次数。
(4)max_users_connections----用户允许同时建立连接的次数。
一小时用户操作次数超过资源控制限制,用户将被锁定,直到下一小时才可以执行对应操作。可以使用GRANT语句更新字段值。
db表
db表存储用户对数据库的操作权限,决定哪个主机存取哪个数据库。
用户列
用户列字段:Host、User、Db,标识从某个主机连接某个用户对某个数据库的操作权限。
权限列
db表中create_routine_priv和alter_routine_priv两个字段表明用户是否有创建和修改存储过程的权限。
tables_priv表和columns_priv表
tables_priv表:对表设置操作权限,columns_priv表对表某一列设置权限。
tables_priv表有8个字段:Host、Db、User、Table_name、Grantor、Timestamp、Table_priv和column_priv
(1)Host、Db、User、Table_nam 四个字段表示主机名,数据库名、用户名和表名。
(2)Grantor表示修改该记录的用户。
(3)Timestamp字段表示修改该记录的时间。
(4)Table_priv表示对表的操作权限,包括Select、Insert、Update、Delete、Create、Drop、Grant、References、Index和Alter。
(5)Column_priv字段表示对表中列的操作权限,包括Select、Insert、Update、References。
columns_priv表有7个字段:Host、Db、User、Table_name、Column_name、Timestamp、Column_priv。其中Column_name用来指定对哪些数据列具有操作权限。
procs_priv表
procs_priv表可以对存储过程和存储函数设置操作权限。
procs_priv表有8个字段:Host、Db、User、Routine_name、Routine_type、Grantor、Timestamp、Proc_priv。
(1)Routine_name表示存储过程或函数的名称。
(2)Routine_type表示存储过程或函数的类型。该字段的两个值:FUNCTION(函数)和PROCEDURE(存储过程)
(3)Grantor是插入或修改该记录用户。
(4)Proc_priv表示拥有的权限,包括Execute、Alter Routine、Grant 3种。
(5)Timestamp表示记录更新时间.
账户管理
登录和退出MySQL服务器
查看命令帮助信息:MySQL -help
常用参数:
-h 主机名,指定主机名或ip,默认是local host。
-u 用户名,指定用户名。
-p 密码,指定登录密码。注意:该参数后面的字符串和-p之前不能有空格。
-P 端口号,MySQL服务器的默认端口号为3306。
-e 执行SQL语句。指定了该参数,将在登录后执行-e后面的命令或SQL语句并退出。
例1:使用root用户登录到本地MySQL服务器的mysql库中,命令如下:
mysql -h localhost -u root -p mysql
例2:使用root用户登录到本地MySQL服务器的test_db数据库,同时执行一条查询语句,命令如下:
mysql -h localhost -u root -p test_db "DESC person;"
新建普通用户
1.使用CREATE USER语句创建新用户
CREATE USER语句会添加一个新的MySQL账户。使用CREATE USER语句用户,必须有全局的CREATE USER权限。
例3:使用CREATE USER语句创建新用户,用户名是chlinrei
,密码是123456
,主机名是localhost,命令如下:
CREATE USER 'chlinrei'@'localhost' IDENTIFIED BY '123456';
如果只指定用户名部分chlinrei
,主机名部分为%
,则对所有主机开放权限。
如果指定用户登录不需要密码,可以省略IDENTIFIED BY部分:
CREATE USER 'chlinrei'@'localhost' ;
2.直接操作MySQL用户表
使用INSERT语句,必须拥有MySQL数据库的INSERT权限。
例4:使用INSERT创建新账户,用户名为chlinrei
,主机名称为localhost,密码为123456
,语句如下:
INSERT INTO user(Host,User,authentication_string)
VALUES('localhost','chlinrei',MD5('123456'));
删除普通用户
1.使用DROP USER语句删除用户
DROP USER语句的语法如下:
DROP USER user[,user];
DROP USER语句用于删除一个或多个用户。要使用DROP USER,必须有MySQL数据库的全局create user权限或delete权限。使用GRANT或REVOKE相同的格式为每个账户命名。
使用DROP USER,可以删除一个账户和其权限,操作如下:
DROP USER 'user'@'localhost';
DROP USER;
第1条语句可以删除user在本地登录权限;第2条语句可以删除来自所有授权表的账户权限记录
2.使用DELETE语句删除用户
DELETE 语句基本语法格式如下:
DELETE FROM MySQL.user WHERE host='hostname' and user='username'
host和user为user表中的两个字段,两个字段的组合确定所要删除的账户记录。
root用户修改自己的密码
使用UPDATA语句修改root用户密码的语句如下:
UPDATA mysql.user set authentication_string=MD5("123456") WHERE USER="root" and host="localhost";
PASSWORD()
函数用来加密用户密码。执行UPDATA语句后,需要执行FLUSH PRIVILEGES
语句重新加载用户权限。
root用户修改普通用户的密码
1.使用set语句修改普通用户的密码
使用SET语句修改普通用户密码的语法格式如下:
SET PASSWORD FOR 'user'@'localhost'='123456';
SET语句执行成功,user用户的密码被设置为123456.
2.使用UPDATE语句修改普通用户的密码
使用UPDATA语句修改用户密码的语法如下:
UPDATE MySQL.user SET authentication_string=MD5("123456") WHERE User="username" AND Host="hostname";
MD5()
函数用来加密用户密码。执行UPDATE语句后,需要执行FLUSH PRIVILEGES
语句重新加载用户权限。
MySQL权限与安全管理之权限表与账户管理相关推荐
- MySQL8.0 权限与安全管理
MySQL是一个多用户数据库,具有功能强大的访问控制系统,可以为不同用户指定允许的权限.MySQL用户可以分为普通用户和root用户.root用户是超级管理员,拥有所有权限,包括创建用户.删除用户和修 ...
- 创建数据账号只有个别表的权限_创建MySQL用户 赋予某指定库表的权限
摘自: http://renxiangzyq.iteye.com/blog/763837 update ERROR 1364 (HY000): Field 'ssl_cipher' doesn't h ...
- mysql全备和指定库和表备份,mysql日志的分类简介和作用, mysql加速跳过域名解析,mysql权限授予与收回,数据库实用篇~~Tring
mysql改密,重置,备份,权限和日志 改密~ 修改密码 重置密码 步骤 数据库备份 用到的命令: 可加参数 : -A 参数 例子: -B 参数 例子: 备份指定数据库的某个表 恢复表 创建用户 操作 ...
- mysql给用户建表权限_创建MySQL用户 赋予某指定库表的权限
摘自: http://renxiangzyq.iteye.com/blog/763837 update ERROR 1364 (HY000): Field 'ssl_cipher' doesn't h ...
- mysql pma用户_MYSQL用户权限管理学习笔记
MYSQL用户管理 1.权限表 MYSQL是一个多用户的数据库,MYSQL的用户可以分为两大类: (1) 超级管理员用户(root),拥有全部权限 (2) 普通用户,由root ...
- mysql中usage是什么权限?
2019独角兽企业重金招聘Python工程师标准>>> mysql中usage是什么权限? 50 如题,我在phpmyadmin中发现自己新建的用户的权限是usage,这是什么权限啊 ...
- mysql 远程_MYSQL开启远程访问权限的方法
1.登陆mysql数据库 mysql -u root -p 查看user表 mysql> use mysql; Database changed mysql> select host,us ...
- MySQL为其他用户创建数据库_MYSQL添加新用户 MYSQL为用户创建数据库 MYSQL为新用户分配权限...
1.新建用户 //登录MYSQL @>mysql -u root -p @>密码 //创建用户 mysql> insert into mysql.user(Host,User,Pas ...
- mysql添加用户,设置权限,回收权限,删除用户详解
简言 1. mysql的用户信息,权限管理等很简单,在数据库mysql的表user中可以查询,操作 示例 1. 创建用户,带密码,同时限制登录IP 模板:create user '新用户名'@'loc ...
最新文章
- 神策数据与达观数据达成战略合作,共拓大数据服务市场
- Android如何使用API
- C语言 | C语言中main函数:int main( int argc, char* argv[] ) 中arg和argv参数的解析及调试
- (枚举)餐厅点餐(fzu2086)
- oracle11gr2克隆安装,VirtualBox+Oracle 11gR2 RAC安装总结
- Js中Array对象
- 阅读宋立恒《AI制胜:机器学习极简入门》第2章:机器学习中的数据预处理
- 文件存储 服务器 购买,filecoin联合挖矿VS自购存储服务器参与 , 我们该如何选择 ? 如何去规避风险 ?...
- tensorflow 提示没有models库
- 在笔记本上试用kvm[原]
- APK大小查看、定义、反编译、如何安装解压
- ThinkPHP整合微信支付之发裂变红包
- 查看Win10激活剩余时间
- 深度学习在点云分类中的研究综述————文献总结
- 如何更新服务器系统教程,服务器操作系统如何更新
- hadoop之mapreduce教程+案例学习(二)
- resnet50中的bottleneck
- redis“万金油”的String,为什么不好用了?
- 干掉Facebook,干掉扎克伯格!
- 2023天津工业大学计算机考研信息汇总
热门文章
- webconfig配置详解--转
- form表单的onsubmit() return问题
- 大数据模型交易平台案例:消费贷款客户营销分析解决方案
- 蓝桥杯嵌入式LCD液晶屏显示
- sonar问题:Font declarations should contain at least one generic font family
- kubeflow--安装使用pipeline
- [转]Clion2019破解-Jetbrains系列产品2019.1.1最新激活方法[持续更新]
- 寂静岭:理性与心魔的拔河
- MySQL学习(十六):数据类型之日期与时间类型
- 卷积与反卷积(转置卷积)关系的公式推导 及其各自的形式