返回顶部
首页 > 资讯 > 数据库 >MySQL存取权限的应用技巧
  • 520
分享到

MySQL存取权限的应用技巧

2024-04-02 19:04:59 520人浏览 安东尼
摘要

这篇文章主要讲解了“Mysql存取权限的应用技巧”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql存取权限的应用技巧”吧!  Mysql使用于认证目的

这篇文章主要讲解了“Mysql存取权限的应用技巧”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql存取权限的应用技巧”吧!

  Mysql使用于认证目的的用户名,与Unix用户名(登录名字)或windows用户名无关。缺省地,大多数MySQL客户尝试使用当前Unix用户名作为MySQL用户名登录,但是这仅仅为了方便,客户程序允许用-u或--user选项指定一个不同的名字。及与安全的考虑,所有的MySQL用户名都应该有口令。

 1. MySQL 用户名和口令

  * MySQL使用于认证目的的用户名,与Unix用户名(登录名字)或Windows用户名无关。缺省地,大多数MySQL客户尝试使用当前Unix用户名作为MySQL用户名登录,但是这仅仅为了方便,客户程序允许用-u或--user选项指定一个不同的名字。及与安全的考虑,所有的MySQL用户名都应该有口令。

  * MySQL用户名最长可以是16各字符;典型地,Unix用户名限制为8个字符。

  * MySQL口令与Unix口令没关系。

  * MySQL加密口令使用了一个Unix登录期间所用的不同算法,PASSWORD()和ENCRYPT()

  函数PASSWORD(str)

  从纯文本口令str计算一个口令字符串。该函数被用于为了在user授权表的PassWord列中存储口令而加密MySQL口令。

  mysql> select PASSWORD(badpwd);

  -> 7f84554057dd964b

  PASSWORD()加密是非可逆的。PASSWORD()不以与Unix口令加密的相同的方法执行口令加密。你不应该假定如果你的Unix 口令和你的MySQL口令是一样的,PASSWORD()将导致与在Unix口令文件存储的相同的加密值。见ENCRYPT()。

  ENCRYPT(str[,salt])

  使用Unix crypt()系统调用加密str。salt参数应该是一个有2个字符的字符串。(MySQL 3.22.16中,salt可以长于2个字符。)

  mysql> select ENCRYPT("hello");

  -> VxuFAJXVARROc

  如果crypt()在你的系统上不可用,ENCRYPT()总是返回NULL。ENCRYPT()只保留str起始8个字符而忽略所有其他,至少在某些系统上是这样。这将由底层的crypt()系统调用的行为决定。

  1. 与MySQL服务器连接

  语法格式:

  shell> mysql [-h host_name][-u user_name][-pyour_pass ]

  -h, -u和-p选项的另一种形式是--host=host_name、--user=user_name和--password=your_pass。

  注意:在-p或--password=与跟随它后面的口令之间没有空格。(在命令行上指定一个口令是不安全的!)

  对于命令行没有的联接参数,mysql使用缺省值:

  * 缺省主机名是localhost。

  * 缺省用户名是你的Unix登录名。

  * 如果没有-p,则没有提供口令。

  缺省值参数的指定:

  在你的主目录下“.my.cnf”的配置文件的[client]小节里指定连接参数:

  [client]

  host=host_name

  user=user_name

  password=your_pass

  注:命令行上被指定的值优先于在配置文件和环境变量中指定的值

  最安全的方法是让客户程序提示口令或在一个适当保护的“.my.cnf”文件中指定口令。

  1. MySQL提供的权限

  权限   列   上下文

  select Select_priv 表

  insert Insert_priv 表

  update Update_priv 表

  delete Delete_priv 表

  index Index_priv 表

  alter Alter_priv 表

  create Create_priv 、表或索引

  drop Drop_priv 数据库或表

  grant Grant_priv 数据库或表

  references References_priv 数据库或表

  reload Reload_priv 服务器管理

  shutdown Shutdown_priv 服务器管理

  process Process_priv 服务器管理

  file File_priv 在服务器上的文件存取

  注:grant权限允许你把你自己拥有的那些权限授给其他的用户。

  file权限给予你用LOAD DATA INFILE和SELECT ... INTO OUTFILE语句读和写服务器上的文件,任何被授予这个权限的用户都能读或写MySQL服务器能读或写的任何文件。

  2. 存取控制:连接证实

  身份检查使用user表3个(Host, User和Password)范围字段。服务器只有在一个user表条目匹配你的主机名和用户名并且你提供了正确的口令时才接受连接。

  注:一个Host值可以是主机名或一个IP数字,或localhost指出本地主机。 可以在Host字段里使用通配符字符“%”和“_”。 Host值%匹配任何主机名。当一个连接被尝试时,服务器浏览排序的条目并使用找到的第一个匹配。

  普遍的误解是认为,对一个给定的用户名,当服务器试图对连接寻找匹配时,明确命名那个用户的所有条目将首先被使用。这明显不是事实。

  3. 存取控制:请求证实

  一旦你建立了一个连接,服务器进入阶段2。对在此连接上进来的每个请求,服务器检查你是否有足够的权限来执行它,授权表用GRANT和REVOKE命令操作。

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

  ON {tbl_name | * | *.* | db_name.*}

  TO user_name [IDENTIFIED BY password]

  [, user_name [IDENTIFIED BY password] ...]

  [WITH GRANT OPTioN]

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

  ON {tbl_name | * | *.* | db_name.*}

  FROM user_name [, user_name ...]

  GRANT在MySQL 3.22.11或以后版本中实现。对于更早MySQL版本,GRANT语句不做任何事情。

  GRANT和REVOKE命令允许系统主管在4个权限级别上授权和撤回赋予MySQL用户的权利:

  全局级别

  全局权限作用于一个给定服务器上的所有数据库。这些权限存储在.user表中。

  数据库级别

  数据库权限作用于一个给定数据库的所有表。这些权限存储在mysql.db和mysql.host表中。

  表级别

  表权限作用于一个给定表的所有列。这些权限存储在mysql.tables_priv表中。

  列级别

  列权限作用于在一个给定表的单个列。这些权限存储在mysql.columns_priv表中。

  user表权限是超级用户权限。只把user表的权限授予超级用户如服务器或数据库主管是明智的。对其他用户,你应该把在user表中的权限设成N并且仅在一个特定数据库的基础上授权, 使用db和host表。

  4. 权限更改何时生效

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

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

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

  5. 建立初始的MySQL权限

  在安装MySQL后,你通过运行scripts/mysql_install_db安装初始的存取权限。包含下列权限集合

  * MySQL root用户作为可做任何事情的一个超级用户。连接必须由本地主机发出。注意:出世的root口令是空的,因此任何人能以root而没有一个口令进行连接并且被授予所有权限。

  * 一个匿名用户,他可对有一个test或以test_开始的名字的数据库做任何时期事情,连接必须由本地主机发出。这意味着任何本地用户能连接并且视为匿名用户。

  * 其他权限被拒绝。例如,一般用户不能使用mysqladmin shutdown或mysqladmin processlist。

  为MySQL root用户指定一个口令(注意,你使用PASSWORD()函数指定口令):

  shell> mysql -u root mysql

  mysql> UPDATE user SET Password=PASSWORD(new_password)

  WHERE user=root;

  mysql> FLUSH PRIVILEGES;

  在MySQL 3.22和以上版本中,你可以使用SET PASSWORD语句:

  shell> mysql -u root mysql

  mysql> SET PASSWORD FOR root=PASSWORD(new_password);

  设置口令的另一种方法是使用mysqladmin命令:

  shell> mysqladmin -u root password new_password

  看看scripts/mysql_install_db脚本,看它如何安装缺省的权限。你可用它作为一个研究如何增加其他用户的基础

  为了完全重建权限表,删除在包含my的目录下所有“*.frm”,“*.MYI”和“*.MYD”文件。(这是在数据库目录下面命名为“mysql”的目录,当你运行mysqld --help时,它被列出。)然后运行mysql_install_db脚本,可能在首先编辑它拥有你想要的权限之后。

  1. 向MySQL增加新用户权限

  增加用户2个不同的方法:

  通过使用GRANT语句或通过直接操作MySQL授权表。

  比较好的方法是使用GRANT语句,因为他们是更简明并且好像错误少些。

  shell> mysql --user=root mysql

  mysql> GRANT ALL PRIVILEGES ON *.* TO monty@localhost

  IDENTIFIED BY something WITH GRANT OPTION;

  mysql> GRANT ALL PRIVILEGES ON *.* TO monty@"%"

  IDENTIFIED BY something WITH GRANT OPTION;

  mysql> GRANT RELOAD,PROCESS ON *.* TO admin@localhost;

  mysql> GRANT USAGE ON *.* TO

感谢各位的阅读,以上就是“MySQL存取权限的应用技巧”的内容了,经过本文的学习后,相信大家对MySQL存取权限的应用技巧这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

您可能感兴趣的文档:

--结束END--

本文标题: MySQL存取权限的应用技巧

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

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

猜你喜欢
  • MySQL存取权限的应用技巧
    这篇文章主要讲解了“MySQL存取权限的应用技巧”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL存取权限的应用技巧”吧!  MySQL使用于认证目的...
    99+
    2024-04-02
  • win10应用程序权限技巧有哪些
    这篇文章主要介绍“win10应用程序权限技巧有哪些”,在日常操作中,相信很多人在win10应用程序权限技巧有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”win10应用程序权限技巧有哪些”的疑惑有所帮助!...
    99+
    2023-07-01
  • Mysql存取权限系统(转)
    Mysql存取权限系统[@more@]Mysql有一个高级的但不标准的存取权限系统.此部分即描述其如何工作. 权限系统做什么 Mysql的权限系统的主要功能是验证从假定主机来的用户连接.以及检查用 户对数据...
    99+
    2024-04-02
  • Android10.0存取权限的问题
    这种本地图片地址: /storage/emulated/0/DCIM/Camera/IMG_20200316_091727.jpg 写和读的权...
    99+
    2022-06-06
    Android
  • Discuz用户权限设置指南:掌握权限管理的关键技巧
    Discuz用户权限设置指南 随着互联网的快速发展,在线社区已经成为人们交流、分享信息的重要平台。而Discuz作为一款知名的论坛系统,在其权限管理方面拥有非常丰富的功能,包括用户权限...
    99+
    2024-03-10
    权限管理 用户设置 指南技巧
  • mysql如何取消用户权限
    本篇内容介绍了“mysql如何取消用户权限”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • 如何提升Oracle DBA的权限管理技巧
    如何提升Oracle DBA的权限管理技巧 在Oracle数据库管理中,权限管理是至关重要的一项工作。作为一名Oracle DBA,掌握权限管理技巧能够有效地保护数据库的安全性,保障数...
    99+
    2024-03-09
    dba 权限 oracle
  • 关于Android8 获取应用容量的问题(权限获取)
    在Android 8.0以后,google出于安全的考虑,废除了以前的方法,但是为我们提供了新的API,我们可以使用StorageStatsManager 类来获取应用大小、用...
    99+
    2022-06-06
    Android
  • MySQL事务和锁的应用技巧
    用表锁定代替事务在MySQL 的MyISAM类型数据表中,并不支持COMMIT(提交)和ROLLBACK(回滚)命令。当用户对数据库执行插入、删除、更新等操作时,这些变化的数据都被立刻保存在磁盘中。这样,在...
    99+
    2024-04-02
  • PHP权限控制修饰符大揭秘:掌握实际应用中的使用技巧
    PHP是一门广泛应用于Web开发的编程语言。在开发Web应用时,权限控制是必不可少的一部分,通过权限控制可以保障应用的数据安全性和功能完整性。PHP提供了许多权限控制修饰符,本文将会就此展开探讨。 权限控制修饰符简介 在PHP中...
    99+
    2024-01-19
    应用技巧 修饰符 PHP权限控制
  • Linux如何给文件权限?linux给文件添加可执行权限的技巧
    如果我们要运行这样的文件是需要单独给这个文件添加一个可执行的权限,该怎么给文件添加可执行文件呢?文件或目录的访问权限分为只读,只写和可执行三种。下面我们就来看看详细的操作过程。 登录Linux系统,新建一个终端 在终端中使...
    99+
    2022-06-04
    linux 给文件权限 可执行权限
  • mysql的用户权限如何授权
    下面一起来了解下mysql的用户权限如何授权,相信大家看完肯定会受益匪浅,文字在精不在多,希望mysql的用户权限如何授权这篇短内容是你想要的。 mysql> grant 权限1,权限2,…...
    99+
    2024-04-02
  • GitLab的权限管理和单点登录集成技巧
    GitLab的权限管理和单点登录集成技巧,需要具体代码示例概述:在GitLab中,权限管理和单点登录(SSO)是非常重要的功能。权限管理可以控制用户对代码仓库、项目和其他资源的访问权限,而单点登录集成可以提供更方便的用户认证和授权方式。本文...
    99+
    2023-10-22
    gitlab 权限管理 单点登录
  • deepinlinux怎么切换到root权限?Deepin切换root用户的技巧
    Deepin系统怎么切换到root用户?下面我们就来看看详细的图文教程。 首先按下“ctrl+lat+t”打开终端,随后给root用户设置一个密码 执行su命令输入root用户的密码并切换到root用...
    99+
    2022-05-27
    deepin linux root用户
  • MySQL存储过程的权限问题小结
    MySQL的存储过程,没错,看起来好生僻的使用场景。问题源于一个开发同学提交了权限申请的工单,需要开通一些权限。 本来是一个很正常的操作,但在我来看是比较着急且紧迫的,说来惭愧,忙着方向规划和开发的事情,这...
    99+
    2024-04-02
  • Android 应用中怎么获取判断处理权限
    这篇文章给大家介绍Android 应用中怎么获取判断处理权限,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。主要用到的几个方法://检查权限int checkSelfPermission(String)//申请权限voi...
    99+
    2023-05-31
    android roi
  • 【FAQ】从存储权限看HarmonyOS 3.0中应用适配
    问题背景: HarmonyOS 3.0发布了,之前开发的Android的应用,发现系统选项中存储权限部分有变化,如下图: ”存储“权限变为”媒体和文件“,且只能访问”仅媒体“的文件目录。因为项目需要读取本地导入存储文件,”仅媒体“权限无法...
    99+
    2023-09-12
    开发语言
  • mysql中取出json字段的小技巧
    目录mysql取出json字段技巧mysql中使用函数JSON_EXTRACT()spark sql中使用get_json_object()mysql取json,在不知道key情况下,取他的value详细值mysql取出...
    99+
    2022-07-05
    mysql取json字段 mysqljson字段 mysql中json字段
  • MySQL触发器参数的实际应用技巧
    MySQL触发器是一种在指定表上执行触发事件时自动执行的动作,可用于管理和维护数据库的数据完整性和一致性。在实际应用中,触发器参数的灵活运用可以提高数据库的效率和可靠性。本文将探讨My...
    99+
    2024-04-02
  • mysql存储过程有哪些使用技巧
    mysql存储过程有哪些使用技巧?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!mysql存储过程使用技巧有:1、创建带in...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作