数据库 之 MySQL用户和权限管理
admin
2023-05-07 11:21:50
0

1  概述

MySQL用户和权限管理 遵循最小权限授权法则,保证系统的安全性

本文主要讲解关于用户MySQL用户和权限管理的相关概念和操作

3  MySQL权限类别

库级别:对某些库拥有对应的权限

表级别:对某些表拥有相关权限

字段级别:

管理类:如super

程序类:如调用一个函数,或者执行一个函数

管理类:

CREATE USER:创建用户账号

RELOAD:重新载入

LOCK TABLES:锁定表

REPLICATION CLIENT, REPLICATION SLAVE:复制功能

SHUTDOWN:关闭数据库服务器

FILE:从文件中加载内容装入

SHOW DATABASES:查看数据库

PROCESS :和进程相关

SUPER:不便归类的其他权限,仅次于root的拥有其他管理功能的用户

程序类:组合为12中权限(3*4)

FUNCTION:函数

PROCEDURE:存储过程

TRIGGER:触发器

操作:对以上的三个程序类都拥有四个操作CREATE,ALTER,DROP,EXECUTE

库和表级别:

CREATE,ALTER,DROP:对库和表创建,修改和删除

INDEX:索引

CREATE VIEW:创建视图的语句的权限

SHOW VIEW:查看视图的权限

GRANT:能够把自己获得的权限生成一个副本转赠给其它用户;转赠的权限不能回收,一般不建议授予这个权限

OPTION:其他权限相关的选项

数据操作:

表:

INSERT/DELETE/UPDATE/SELECT 

字段:

SELECT(col1,col2,...)

UPDATE(col1,col2,...)

INSERT(col1,col2,...)

注意,delete是整行删除,因此不能用于删除字段

所有权限:ALL, ALL PRIVILEGES

元数据数据库(数据字典):mysql库,保存了当前系统的相关数据,如当前数据库上对象的定义

MySQL用户管理

用户账号组成:user@host

user:账户名称;

host:此账户可通过哪些客户端主机请求创建连接线程; 

%:任意长度的任意字符;

_:任意单个字符;

mysql默认会将登录的ip解析成主机名,比如有主机ip为192.168.1.71的主机名是CentOS7A.sunny.com,那么在mysql服务器上授权的是test@192.168.1.%的账号访问,没有授权CentOS7A.sunny.com,当mysql服务器没有关闭名称解析时,192.168.1.71要远程连接mysql服务器,会被识别为账号test@CentOS7A.sunny.com,由于没有授权test@CentOS7A.sunny.com登录mysql服务器,因此不能登录mysql服务器

授权主机名和ip是不等同的,

skip_name_resolve=ON    #关闭名称解析功能

创建用户:

CREATE USER  'user'@'host' [IDENTIFIED BY [PASSWORD] 'password'] [,'user'@'host' [IDENTIFIED BY [PASSWORD] 'password']...]

重命名:RENAME USER

RENAME USER old_user TO new_user[, old_user TO new_user] ...

删除用户:没有回收站,除非有备份,否则删掉就不能恢复

DROP USER 'user'@'host' [, 'user'@'host'] ...

让MySQL重新加载授权表:用update更改数据要手动执行flush

FLUSH PRIVILEGES

授权

db, host, user三个级别的上进行授权

mysql库中权限相关的表:tables_priv, column_priv, procs_priv, proxies_priv

语法如下

GRANT  priv_type [(column_list)] [, priv_type [(column_list)]] ...ON [object_type] priv_level TO user_specification [, user_specification] ... [REQUIRE {NONE | ssl_option [[AND] ssl_option] ...}] [WITH with_option ...]

相关解释如下

[REQUIRE {NONE | ssl_option [[AND] ssl_option] ...}]:基于ssl连接

object_type:

TABLE:表

| FUNCTION:函数

| PROCEDURE:过程

priv_level:权限级别

*表示所有库所有表

| *.*表示所有者的所有表

| db_name.*表示指定库的所有表

| db_name.tbl_name表示指定库的指定表

| tbl_name表示所有库的特定表

| db_name.routine_name:存储历程之一

ssl_option:

SSL

| X509 格式的证书

| CIPHER 'cipher':指明加密算法

| ISSUER 'issuer':要求证书颁发者为指定的颁发者

| SUBJECT 'subject':证书里的其他信息

with_option:以下数值为0表示不限制

GRANT OPTION:表示得到的权限可以转赠

| MAX_QUERIES_PER_HOUR count:一个账号每小时最多发起多少次的操作

| MAX_UPDATES_PER_HOUR count:一小时内发起更新的次数

| MAX_CONNECTIONS_PER_HOUR count:一小时发起多少次短连接请求

| MAX_USER_CONNECTIONS count:一个账号可以同时发起多少次的连接。

查看授权:SHOW GRANTS;查看自己的权限

SHOW GRANTS [FOR 'user'@'host']

取消授权:REVOKE

REVOKE  priv_type [(column_list)][, priv_type [(column_list)]] ...

ON [object_type] priv_level

FROM  'user'@'host' [,  'user'@'host'] ...

REVOKE ALL PRIVILEGES, GRANT OPTION

FROM user [, user] ...

例子

授权账号'test'@'192.168.1.%'

MariaDB [sunny]> grant select on sunny.students to 'test'@'192.168.1.%' identified by "Pass1234";

额外授权是追加,直接授权即可,如再增加delete权限

MariaDB [sunny]> grant delete on sunny.students to 'test'@'192.168.1.%' identified by "Pass1234";

授权对应字段拥有相关权限

如授权test账号对表sunny.students的字段major拥有update的权限,则针对其他字段就没有update权限

MariaDB [sunny]> grant update(major) on sunny.students to 'test'@'192.168.1.%' identified by "Pass1234";

回收权限

MariaDB [(none)]> revoke update(major) on sunny.students from 'test'@'192.168.1.%';


相关内容

热门资讯

少出国、少用油、少买金子,莫迪... 【文/观察者网 熊超然】上周末,印度总理莫迪呼吁民众在中东战争持续的这段时间里,未来一年内适度减少燃...
岛内“新地标”,沦为民进党“抢... 被视为岛内近年来最为重大的公共建设项目之一的新北市淡江大桥,于5月12日正式通车。然而,因民进党当局...
副秘书长在以色列机场遭扣留,联... 新华社联合国5月13日电 联合国秘书长副发言人哈克13日就联合国负责安全和安保事务的副秘书长吉勒·米...
【珠城“健”闻】市三院引进非侵... 前沿科技赋能: 构建大脑与肢体的康复通路 技术优势对比: 与传统被动康复训练相比的显著突破 1.意...
从微信状态看社交边界 钟 颐 5月11日深夜,“微信状态 访客记录”话题冲上微博热搜,引发网友热议。微信方面表示,该功能仅...
中国科学家成功研制“九章四号”... 4月10日拍摄的“九章四号”量子计算原型机局部。 记者5月13日从中国科学技术大学获悉,该校潘建伟、...
江苏睿恩新能源申请正极极片及其... 国家知识产权局信息显示,江苏睿恩新能源科技有限公司申请一项名为“一种正极极片及其制备方法、锂离子电池...
流言|2026年地球会失重7秒... 流言:2026年8月12日地球将失重7秒、数千万人因此伤亡。 (图片由AI生成) 真相:“地球重...
从渠道赋能到行业基础设施 互联... 2025年,伴随数智技术的加速渗透,保险业的获客方式、决策逻辑乃至服务形态,都在被重新定义,互联网保...
人形机器人绕不开的坎:续航问题... 这两年,关于人形机器人的故事已经被讲了很多:AGI 的终极载体、万亿美元的劳动力替代、工厂和家庭的全...