• ADADADADAD

    数据库 之 MySQL用户和权限管理[ mysql数据库 ]

    mysql数据库 时间:2024-12-03 12:11:35

    作者:文/会员上传

    简介:

    1 概述MySQL用户和权限管理 遵循最小权限授权法则,保证系统的安全性本文主要讲解关于用户MySQL用户和权限管理的相关概念和操作3 MySQL权限类别库级别:对某些库拥有对应的权限

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    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.%';

    数据库 之 MySQL用户和权限管理.docx

    将本文的Word文档下载到电脑

    推荐度:

    下载