广告
返回顶部
首页 > 资讯 > 数据库 >MySQL中怎么设置用户授权
  • 296
分享到

MySQL中怎么设置用户授权

2024-04-02 19:04:59 296人浏览 独家记忆
摘要

Mysql中怎么设置用户授权,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。使用SHOW GRANTS语句显示用户的授权你可以直接查看授权表

Mysql中怎么设置用户授权,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

使用SHOW GRANTS语句显示用户的授权

你可以直接查看授权表,也可以使用SHOW GRANTS语句查看某个用户的授权,这种情况下使用SHOW GRANTS语句显然要方便一些。

语法:SHOW GRANTS FOR user_name

为了容纳对任意主机的用户授予的权利,mysql支持以格式指定user_name值。

例如,下面的语句显示一个用户admin的权限:

mysql>SHOW GRANTS FOR ;

其结果为创建该用户的GRNAT授权语句:

GRANT RELOAD, SHUTDOWN, PROCESS ON *.* TO  IDENTIFIED BY PASSWord 28e89ebc62d6e19a

密码是加密后的形式。

使用GRANT语句创建用户并授权

GRANT语句的语法

GRANT priv_type (columns)
ON what
TO user IDENTIFIED BY “password”
WITH GRANT OPTioN


要使用该语句,需要填写以下部分:

·priv_type 分配给用户的权限。

priv_type可以指定下列的任何一个:

ALL PRIVILEGES      FILE                RELOAD

ALTER               INDEX               SELECT

CREATE              INSERT              SHUTDOWN

DELETE              PROCESS             UPDATE

DROP                REFERENCES          USAGE

ALL是ALL PRIVILEGES的一个同义词,REFERENCES还没被实现,USAGE当前是“没有权限”的一个同义词。它能用在你想要创建一个没有权限用户的时候。

对于表,你能指定的唯一priv_type值是SELECT、INSERT、UPDATE、DELETE、CREATE、DROP、GRANT、INDEX和ALTER。

对于列,你能指定的唯一priv_type值是(即,当你使用一个column_list子句时)是SELECT、INSERT和UPDATE。

·columns 权限适用的列。

这是可选的,只来设置列专有的权限。如果命名多于一个列,则用逗号分开。

·what 权限应用的级别

GRANT允许系统主管在4个权限级别上授权MySQL用户的权利:

·全局级别

全局权限作用于一个给定服务器上的所有。这些权限存储在.user表中。 你能通过使用ON *.*语法设置全局权限

·数据库级别

数据库权限作用于一个给定数据库的所有表。这些权限存储在mysql.db和mysql.host表中。 你能通过使用ON db_name.*语法设置数据库权限。如果你指定ON *并且你有一个当前数据库,你将为该数据库设置权限。(警告:如果你指定ON *而你没有一个当前数据库,你将影响全局权限!)

·表级别

表权限作用于一个给定表的所有列。这些权限存储在mysql.tables_priv表中。你能透过 ON tbl_name,为具体的表名设置权限。

·列级别

列权限作用于在一个给定表的单个列。这些权限存储在mysql.columns_priv表中。你可以通过指定一个columns子句将权限授予特定的列,同时要在ON子句中指定具体的表。

对与一个表或列的权限是由4个权限级别的逻辑或形成的。例如,如果mysql.user表指定一个用户有一个全局select权限,它不能被数据库、表或列的一个条目否认。

对于一个列的权限能如下计算:

global privileges
OR (database privileges AND host privileges)
OR table privileges
OR column privileges


在大多数情况下,你只授予用户一个权限级别上的权限,因此现实通常不象上面所说的那样复杂。

user 使用权限的用户。

为了容纳对任意主机的用户授予的权利,MySQL支持以格式指定user_name值。如果你想要指定一个特殊字符的一个user字符串(例如“-”),或一个包含特殊字符或通配符的host字符串(例如“%”),你可以用括号括起能用户或主机名字 (例如,)。

你能在主机名中指定通配符。例如,"适用于在loc.Gov域中任何主机的user,并且"适用于在144.155.166类 C 子网中任何主机的user。

简单形式的user是"的一个同义词。注意:如果你允许匿名用户连接MySQL服务器(它是缺省的),你也应该增加所有本地用户如 ,因为否则,当用户试图从本地机器上登录到MySQL服务器时,对于mysql.user表中的本地主机的匿名用户条目将被使用!匿名用户通过插入有User=的条目到mysql.user表中来定义。通过执行这个查询,你可以检验它是否作用于你:

mysql> SELECT Host,User FROM mysql.user WHERE User=;

·password 分配给该用户的口令。这也是可选的。

在MySQL 3.22.12或以后,如果创建一个新用户或如果你有全局授予权限,用户的口令将被设置为由IDENTIFIED BY子句指定的口令,如果给出一个。如果用户已经有了一个口令,它被一个新的代替。

警告:如果你创造一个新用户但是不指定一个IDENTIFIED BY子句,用户没有口令。这是不安全的。

·WITH GRANT OPTION子句是可选的。

WITH GRANT OPTION子句给与用户有授予其他用户在指定的权限水平上的任何权限的能力。你应该谨慎对待你授予他grant权限的用户,因为具有不同权限的两个用户也许能合并权限!

创建用户并授权的实例

创建一个具有超级用户权利的用户:

mysql>GRANT ALL ON *.* TO  IDENTIFIED BY "passwd"->WITH GRANT OPTION

该语句将在user表中为创建一个记录,打开所有权限。

数据库级权限用一个ON db_name.*子句而不是ON *.*进行授权:

mysql>GRANT ALL ON sample.* TO  IDENTIFIED BY "ruby"

这些权限不是全局的,所以它们不存储在user表中,我们仍然需要在user表中创建一条记录(使得用户能连接),但我们也需要创建一个db表记录记录数据库集的权限。

直接修改授权表创建用户并授权

如果你还记得前面的介绍,你应该能即使不用GRANT语句也能做GRANT做的事情。记住在你直接修改授权表时,你将通知服务器重载授权表,否则他不知道你的改变。你可以执行一个mysqladmin flush-privileges或mysqladmin reload命令和FLUSH PRIVILEGES语句强迫一个重载。如果你忘记做这个,你会疑惑为什么服务器不做你想做的事情。

下列GRANT语句创建一个拥有所有权的超级用户。包括授权给别人的能力:

GRANT ALL ON *.* TO  IDENTIFIED BY "passwd" WITH GRANT OPTION

该语句将在user表中为创建一个记录,打开所有权限,因为这里是超级用户(全局)权限存储的地方,要用INSERT语句做同样的事情,语句是:

INSERT INTO user  VALUES("localhost","anyname",PASSWORD("passwd"),
"Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y")

你可能发现它不工作,这要看你的MySQL版本。授权表的结构已经改变而且你在你的user表可能没有14个权限列。用SHOW COLUMNS找出你的授权表包含的每个权限列,相应地调整你的INSERT语句。下列GRANT语句也创建一个拥有超级用户身份的用户,但是只有一个单个的权限:

GRANT RELOAD ON *.* TO  IDENTIFIED BY "flushpass"

本例的INSERT语句比前一个简单,它很容易列出列名并只指定一个权限列。所有其它列将设置为缺省的"N":

INSERT INTO user (Host,Password,Reload) VALUES("localhost","flush",PASSWORD("flushpass"),"Y")

数据库级权限用一个ON db_name.*子句而不是ON *.*进行授权:

GRANT ALL ON sample.* TO  IDENTIFIED BY "ruby"

这些权限不是全局的,所以它们不存储在user表中,我们仍然需要在user表中创建一条记录(使得用户能连接),但我们也需要创建一个db表记录记录数据库集权限:

mysql> INSERT INTO user (Host,User,Password)
-> VALUES("localhost","boris",PASSWORD("ruby")) ;
mysql> INSERT INTO db VALUES
-> ("localhost","sample_db","boris","Y","Y","Y","Y","Y","Y","N","Y","Y","Y");


"N"列是为GRANT权限;对末尾的一个数据库级具有WITH GRANT OPTION的GRANT语句,你要设置该列为"Y"。

要设置表级或列级权限,你对tables_priv或columns_priv使用INSERT语句。当然,如果你没有GRANT语句,你将没有这些表,因为它们在MySQL中同时出现。如果你确实有这些表并且为了某些原因想要手工操作它们,要知道你不能用单独的列启用权限。

你设置tables_priv.Table_priv或columns_priv.Column_priv列来设置包含你想启用的权限值。例如,要对一个表启用SELECT和INSERT权限,你要在相关的tables_priv的记录中设置Table_priv为"Select,Insert"。</P

关于MySQL中怎么设置用户授权问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网数据库频道了解更多相关知识。

您可能感兴趣的文档:

--结束END--

本文标题: MySQL中怎么设置用户授权

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

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

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

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

下载Word文档
猜你喜欢
  • MySQL中怎么设置用户授权
    MySQL中怎么设置用户授权,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。使用SHOW GRANTS语句显示用户的授权你可以直接查看授权表...
    99+
    2022-10-18
  • mysql中怎么实现用户授权
    mysql中怎么实现用户授权,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。 mysql 用户授权   默认情况...
    99+
    2022-10-18
  • MySQL中怎么实现用户与授权
    MySQL中怎么实现用户与授权,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、用户管理1、用户账号用户的账号由用户名和HOST俩部分组成('USERNAME'...
    99+
    2023-06-20
  • mysql怎么添加用户并授权
    本篇内容介绍了“mysql怎么添加用户并授权”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!添加用户并授权简...
    99+
    2022-10-18
  • mysql用户授权失败怎么办
    mysql用户授权失败的解决方法报错如下:ERROR 1133 (42000): Can't find any matching row in the user table原因:在用户表中找不到任何匹配的行,导致授权失败解决方法:首...
    99+
    2022-10-22
  • MySQL 5.7中怎么创建用户并授权
    这期内容当中小编将会给大家带来有关MySQL 5.7中怎么创建用户并授权,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 --创建用户mysql...
    99+
    2022-10-18
  • mongodb怎么给用户授权
    这篇文章主要介绍“mongodb怎么给用户授权”,在日常操作中,相信很多人在mongodb怎么给用户授权问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mongodb怎么给用户...
    99+
    2022-10-18
  • mysql中授权和撤销授权等命令怎么用
    小编给大家分享一下mysql中授权和撤销授权等命令怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! ...
    99+
    2022-10-18
  • MySQL8 创建用户,设置修改密码,授权
    MySQL8 创建用户,设置修改密码,授权 MySQL5.7可以 (创建用户,设置密码,授权) 一步到位 👇 GRANT ALL PRIVILEGES ON *.* TO '用户名'@...
    99+
    2023-09-02
    mysql 数据库
  • mysql中怎么设置root用户的密码和权限
    这篇文章主要介绍了mysql中怎么设置root用户的密码和权限的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇mysql中怎么设置root用户的密码和权限文章都会有所收获,下面我...
    99+
    2023-05-25
    mysql root
  • mysql数据库怎么添加用户并授权?
    查询所有用户方式1:mysql> select host, user, password from mysql.user; -- 5.7版本之前的 mysql&g...
    99+
    2022-10-18
  • MySQL 设置用户权限步骤
    以下是在 MySQL 中设置权限的步骤 1、登录 MySQL 使用管理员账户和密码登录 MySQL。 2、创建用户账户 使用 CREATE USER 语句创建新用户账户。 例如,要创建名为 myuser 的新用户,可以执行以下语句: C...
    99+
    2023-09-15
    mysql 数据库 数据库开发
  • 亚马逊授权服务器怎么设置权限
    登录AWS控制台:首先,在AWS控制台中登录,进入AWS设置页面,选择“控制台”选项卡,并在“控制台概览”中查找“授权”或“授权服务器”选项。 创建实例:在控制台实例下,选择“create instance”,然后单击“create”,在...
    99+
    2023-10-27
    亚马逊 权限 服务器
  • MySQL新建用户怎么授权、删除用户和修改密码
    这篇文章主要讲解了“MySQL新建用户怎么授权、删除用户和修改密码”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL新建用户怎么授权、删除用户和修改密...
    99+
    2022-10-18
  • Mysql如何给用户设置权限
    本篇文章给大家主要讲的是关于Mysql如何给用户设置权限的内容,感兴趣的话就一起来看看这篇文章吧,相信看完Mysql如何给用户设置权限对大家多少有点参考价值吧。 #配置只读用户,all表示所有权限...
    99+
    2022-10-18
  • linux给用户权限怎么设置
    在Linux系统中,可以使用chmod命令来设置用户的权限。该命令的基本语法如下: chmod [选项] 权限 文件或目录 其中,选...
    99+
    2023-10-23
    linux
  • mongodb怎么创建用户并授权
    在MongoDB中,可以使用以下步骤创建用户并授权: 连接到MongoDB数据库。 切换到admin数据库:`use adm...
    99+
    2023-10-27
    mongodb
  • oracle怎么批量授权用户表
    要批量授权用户表,您可以使用Oracle的GRANT语句来实现。以下是一个示例:```sqlGRANT SELECT, INSERT...
    99+
    2023-08-25
    oracle
  • 如何实现MySQL中授权用户的语句?
    如何实现MySQL中授权用户的语句?MySQL是一种广泛使用的关系型数据库管理系统,通过使用授权语句,可以控制用户对数据库的访问权限。在本文中,将介绍如何通过具体的代码示例来实现MySQL中授权用户的语句。在MySQL中,可以使用GRANT...
    99+
    2023-11-08
    MySQL授权 用户语句
  • MySQL中如何添加删除用户和授权
    这篇文章将为大家详细讲解有关MySQL中如何添加删除用户和授权,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。下面给大家了解一下MySQL中的用户管理,介绍一...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作