iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL数据库的授权原则有哪些
  • 385
分享到

MySQL数据库的授权原则有哪些

2024-04-02 19:04:59 385人浏览 泡泡鱼
摘要

Mysql数据库的授权原则有哪些,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。服务器重新启动的情况当mysqld启动时,所有的

Mysql数据库的授权原则有哪些,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

服务器重新启动的情况

mysqld启动时,所有的授权表内容被读进存储器并且从那时开始生效。

被服务器立即应用的情况

用GRANT、REVOKE或SET PASSWord对授权表施行的修改会立即被服务器注意到。

直接修改授权表的情况

如果你手工地修改授权表(使用INSERT、UPDATE等等),你应该执行一个FLUSH PRIVILEGES语句或运行mysqladmin flush-privileges告诉服务器再装载授权表,否则你的改变将不生效,除非你重启服务器。

对现有客户连接的影响情况

当服务器注意到授权表被改变了时,现存的客户连接有如下影响:

·表和列权限在客户的下一次请求时生效。

·数据库权限改变在下一个USE db_name命令生效。

·全局权限的改变和口令改变在下一次客户连接时生效。

授权原则

无论怎么小心都难免在给用户授权时留有,希望下面的内容能给你一些帮助,你一般应该遵守这些规则。

只有root用户拥有授权表的改写权

不要把授权表的改写权授予除root用户之外的其它用户(当然,如果你可以用另一个用户代替root用户进行管理,以增加安全性)。因为这样,用户可以通过改写授权表而推翻现有的权限。产生安全漏洞。

一般情况下,你可能不会犯这个错误,但是在安装新的分发, 初始授权表之后。这个漏洞是存在的,如果你不了解这时授权表的内容你可能会犯错误。

在Unix()上,在按照手册的指令安装好MySQL后,你必须运行mysql_install_db脚本建立包含授权表的mysql和初始权限。在windows上,运行分发中的Setup程序初始化数据目录和数据库。假定服务器也在运行。

当你第一次在机器上安装MySQL时,my中的授权表是这样初始化的:

·你可以从本地主机(localhost)上以root连接而不指定口令。root用户拥有所有权限(包括管理权限)并可做任何事情。(顺便说明,MySQL超级用户与Unix超级用户有相同的名字,他们彼此毫无关系。)

·匿名访问被授予用户可从本地连接名为test和任何名字以test_开始的数据库。匿名用户可对数据库做任何事情,但无管理权限。

一般地,建议你删除匿名用户记录:

mysql> DELETE FROM user WHERE User="";

更进一步,同时删除其他授权表中的任何匿名用户,有User列的表有db、tables_priv和columns_priv。

另外要给root用户设置密码。

关于用户、口令及主机的设置

·对所有MySQL用户使用口令。

记住,如果other_user没有口令,任何人能简单地用mysql -u other_user db_name作为任何其它的人登录。对客户机/服务器应用程序,客户可以指定任何用户名是常见的做法。在你运行它以前,你可以通过编辑 mysql_install_db脚本改变所有用户的口令,或仅仅MySQL root的口令,象这样:

shell> mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD(new_password)
-> WHERE user=root;
mysql> FLUSH PRIVILEGES;


·删除匿名用户

匿名用户的存在不仅不仅容易引起存取拒绝错误,更会产生严重的安全漏洞,安装授权表后,自动安装匿名用户。缺省时你可以用任何用户名连接,不需要密码,并且具有修改授权表权限。

你可以这样删除匿名用户:

shell>mysql –u root –p mysql
mysql>delete from user where User=””;


·留意使用通配符的主机名,尽量缩小主机名的范围,适合用户的主机就足够了,不要让用户不使用的主机留在授权表里。

·如果你不信任你的DNS,你应该在授权表中使用IP数字而不是主机名。原则上讲,--secure选项对mysqld应该使主机名更安全。在任何情况下,你应该非常小心地使用包含通配符的主机名!

授予用户合适的权限

·授权用户足够使用的权限,不要赋予额外的权限。

例如,对于用户只需要检索数据表的需求,赋予SELECT权限即可,不可赋予UPDATE、INSERT等写权限,不要怕被说成时吝啬鬼。

·可能会产生安全漏洞的权限

grant权限允许用户放弃他们的权限给其他用户。2个有不同的权限并有grant权限的用户可以合并权限。

alter权限可以用于通过重新命名表来推翻权限系统。因为ALTER权限可能以你没有设想的任何方法被使用。例如,一个用户user1能访问table1,但不能访问table2。但是如果用户user1带有ALTER权限可能通过使用ALTER TABLE将table2重命名为table1来打乱你的设想。

shutdown权限通过终止服务器可以被滥用完全拒绝为其他用户服务 。

·可能会产生严重安全漏洞的权限

不要把PROCESS权限给所有用户。mysqladmin processlist的输出显示出当前执行的查询正文,如果另外的用户发出一个UPDATE user SET password=PASSWORD(not_secure)查询,被允许执行那个命令的任何用户可能看得到。mysqld为有process权限的用户保留一个额外的连接, 以便一个MySQL root用户能登录并检查,即使所有的正常连接在使用。

不要把FILE权限给所有的用户。有这权限的任何用户能在拥有mysqld守护进程权限的文件系统那里写一个文件!为了使这更安全一些,用SELECT ... INTO OUTFILE生成的所有文件对每个人是可读的,并且你不能覆盖已经存在的文件。

FILE权限也可以被用来读取任何作为运行服务器的Unix用户可存取的文件。这可能被滥用,因为不仅有该服务器主机帐号的用户可以读取它们,而且有FILE权限的任何客户机也可以通过网络读取它们。你的数据库目录和系统的各种文件可能成为全球范围共享的文件!例如,通过使用LOAD DATA装载“/etc/passwd”进一个数据库表,然后它能用SELECT被读入。

下面的过程说明如何进行此项操作:

1、建具有LONGBLOB列的表:

mysql> USE test;
mysql> CREATE TABLE temp (b LONGBLOB);


2、用此表读取你要窃取的文件的内容:

mysql>LOAD DATA INFILE “/etc/passwd” INTO TABLE temp
->FIELDS ESCAPED BY  “”  LINES TERMINATED BY  “”;
mysql>SELECT * FROM temp;


3、可以这样窃取你的数据表data:

mysql>LOAD DATA INFILE“./other_db/data.frm” INTO TABLE temp
->FIELDS ESCAPED BY“”LINES TERMINATED BY“”;
mysql>SELECT * FROM temp INTO OUTFILE“./another_db/data.frm”
->FIELDS ESCAPED BY“”LINES TERMINATED BY“”;
mysql>DELETE FROM temp;
mysql>LOAD DATA INFILE“./other_db/data.MYD” INTO TABLE temp
->FIELDS ESCAPED BY“”LINES TERMINATED BY“”;
mysql>SELECT * FROM temp INTO OUTFILE“./another_db/data.MYD”
->FIELDS ESCAPED BY“”LINES TERMINATED BY“”;
mysql>DELETE FROM temp;
mysql>LOAD DATA INFILE“./other_db/data.MYI” INTO TABLE temp
->FIELDS ESCAPED BY“”LINES TERMINATED BY“”;
mysql>SELECT * FROM temp INTO OUTFILE“./another_db/data.MYI”
->FIELDS ESCAPED BY“”LINES TERMINATED BY“”;
mysql>DELETE FROM temp;


然后用户就拥有的一个新表another.data,可以对它进行完全访问。

MySQL权限系统无法完成的任务

有一些事情你不能用MySQL权限系统做到:

你不能明显地指定一个给定用户应该被拒绝存取。即,你不能明显地匹配一个用户并且然后拒绝连接。

你不能指定一个用户有权创建立或抛弃一个数据库中的表,也不能创建或抛弃数据库本身。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网数据库频道,感谢您对编程网的支持。

您可能感兴趣的文档:

--结束END--

本文标题: MySQL数据库的授权原则有哪些

本文链接: https://www.lsjlt.com/news/58181.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL数据库的授权原则有哪些
    MySQL数据库的授权原则有哪些,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。服务器重新启动的情况当mysqld启动时,所有的...
    99+
    2024-04-02
  • MySQL数据库授权的原则是什么
    本篇内容介绍了“MySQL数据库授权的原则是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  服务器重...
    99+
    2024-04-02
  • 数据库grant的授权命令有哪些
    本篇文章给大家分享的是有关数据库grant的授权命令有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。命令以及权限:usage  ...
    99+
    2024-04-02
  • SQL数据库的优化原则有哪些
    这期内容当中小编将会给大家带来有关SQL数据库的优化原则有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。关于SQL数据库优化的原则主要可以从以下几个方面着手:设计方面...
    99+
    2024-04-02
  • MySQL数据库——MySQL GRANT:用户授权
    授权就是为某个用户赋予某些权限。例如,可以为新建的用户赋予查询所有数据库和表的权限。MySQL 提供了 GRANT 语句来为用户设置权限。 在 MySQL 中,拥有 GRANT 权限的用户才可以执行 GRANT 语句,其语法格式如下: GR...
    99+
    2023-08-31
    数据库 mysql sql
  • 将数据库的所有权限授予MySQL用户?
    首先,使用 CREATE 命令创建用户和密码。语法如下。CREATE USER 'yourUserName'@'localhost' IDENTIFIED BY 'yourPassword';...
    99+
    2023-10-22
  • 选择数据库服务器的原则有哪些
    性能和可靠性:选择一个性能稳定、可靠的数据库服务器,以确保系统的稳定运行和数据的完整性。 数据容量和处理能力:根据项目的数据...
    99+
    2024-04-30
    服务器 数据库
  • mysql数据库报错的原因有哪些
    MySQL数据库报错的原因主要有以下几种: 语法错误:在SQL语句中可能存在语法错误,如拼写错误、不完整的语句等。 数据库连...
    99+
    2024-05-11
    mysql
  • MySQL如何授权用户管理数据库
    这篇文章将为大家详细讲解有关MySQL如何授权用户管理数据库,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、grant 普通 DBA 管理某个 MySQL 数据库的权限...
    99+
    2024-04-02
  • 数据库命名的规则有哪些
    这篇文章给大家介绍数据库命名的规则有哪些,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。数据库命名规范 1 目的规范数据库各种对象的命名规则。2 数据库命名原则2.1 数据文件如果数据库...
    99+
    2024-04-02
  • OAuth2.0的授权方式有哪些
    本篇内容介绍了“OAuth2.0的授权方式有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!首先我们需要清楚 OAuth 是什么?OAut...
    99+
    2023-07-05
  • mysql数据库连接失败的原因有哪些
    服务器故障:可能是因为数据库服务器宕机、网络故障或者是数据库服务未启动导致连接失败。 用户权限不足:可能是因为连接数据库的用户没有...
    99+
    2024-05-13
    mysql
  • mysql数据库同步报错的原因有哪些
    数据库同步报错可能有多种原因,以下是一些可能的原因: 网络连接问题:数据库同步过程中出现网络连接问题会导致同步失败。 权限问题:同...
    99+
    2024-03-06
    mysql
  • MySQL数据库连接不上的原因有哪些
    MySQL数据库连接不上的原因可能有以下几种: 服务器未运行:检查 MySQL 服务器是否已启动。 服务器不在运行的端口:默认 M...
    99+
    2024-04-09
    MySQL
  • mysql连接数据库失败的原因有哪些
    用户名或密码错误:输入的用户名或密码不正确,导致无法连接数据库。 主机名错误:指定了错误的主机名或IP地址,无法与数据库服务器建立...
    99+
    2024-04-09
    mysql
  • mysql中常见的原则有哪些
    mysql中常见的原则有哪些,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1、最左匹配原则例如,如果你建立了一个(a,b)索引,就没有必要再建立一个a索引,因为...
    99+
    2023-06-25
  • mysql怎么给用户授权某个数据库
    在MySQL中,给用户授权某个数据库可以通过以下步骤实现: 连接到MySQL数据库服务器: mysql -u root -p ...
    99+
    2024-04-09
    mysql 数据库
  • MongoDB数据库授权认证的实现
    目录1.与用户相关的命令2.配置mongodb登陆授权认证2.1.创建一个用户2.2.修改配置文件启用用户认证2.3.重启mongodb2.4.使用口令登陆mongodb3.授权用户...
    99+
    2024-04-02
  • 数据库中加锁规则有哪些
    这篇文章主要介绍数据库中加锁规则有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!间隙锁再加上行锁,很容易在判断是否会出现锁等待的问题上犯错。因为间隙锁在可重复读隔离级别下才有效,...
    99+
    2024-04-02
  • mysql的数据库数据类型有哪些
    MySQL数据库中常用的数据类型包括: 整数类型:INT、TINYINT、SMALLINT、MEDIUMINT、BIGINT 浮点...
    99+
    2024-05-08
    mysql
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作