问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

mysql中怎样设置用户和管理员的权限?

发布网友 发布时间:2022-04-20 04:21

我来回答

2个回答

热心网友 时间:2022-04-07 16:35

MySQL管理员应该知道如何设置MySQL用户账号,指出哪个用户可以连接服务器,从哪里连接,连接后能做什么。MySQL 3.22.11开始引入两条语句使得这项工作更容易做:GRANT语句创建MySQL用户并指定其权限,而REVOKE语句删除权限。两条语句扮演了MySQL数据库的前端角色,并提供与直接操作这些表的内容不同的另一种方法。CREATE和REVOKE语句影响4个表: 中.国站长站

还有第5个授权表(host),但它不受GRANT和REVOKE的影响。 中.国.站长站

当你对一个用户发出一条GRANT语句时,在user表中为该用户创建一条记录。如果语句指定任何全局权限(管理权限或适用于所有数据库的权限),这些也记录在user表中。如果你指定数据库、表和列级权限,他们被分别记录在db、tables_priv和columns_priv表中。

站.长站

用GRANT和REVOKE比直接修改授权表更容易些,然而,建议你阅读一下《MySQL安全性指南》。这些表异常重要,而且作为一名管理员,你应该理解它们如何超越GRANT和REVOKE语句的功能水平。

站.长站

在下面的章节中,我们将介绍如何设置MySQL用户账号并授权。我们也涉及如何撤权和从授权表中删除用户。 Chinaz

你可能也想考虑使用MySQLACCESS和mysql_setpermission脚本,它是MySQL分发的一部分,它们是Perl脚本,提供GRANT语句的另一种选择设置用户账号。MySQL_setpermission需要安装DBI支持。

Chinaz.com

1、创建用户并授权 Chinaz.com

GRANT语句的语法看上去像这样:

以下为引用的内容:
GRANT privileges (columns)
ON what
TO user IDENTIFIED BY "password"
WITH GRANT OPTION

www.Chinaz.com

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

中国.站.长站

privileges 站长.站

授予用户的权限,下表列出可用于GRANT语句的权限指定符:

中国站.长.站

上表显示在第一组的权限指定符适用于数据库、表和列,第二组数管理权限。一般,这些被相对严格地授权,因为它们允许用户影响服务器的操作。第三组权限特殊,ALL意味着“所有权限”,UASGE意味着无权限,即创建用户,但不授予权限。 Www^Chinaz^com

columns

中国.站长站

权限运用的列,它是可选的,并且你只能设置列特定的权限。如果命令有多于一个列,应该用逗号分开它们。

中国站长.站

what

站长.站

权限运用的级别。权限可以是全局的(适用于所有数据库和所有表)、特定数据库(适用于一个数据库中的所有表)或特定表的。可以通过指定一个columns字句是权限是列特定的。 Www@Chinaz@com

user 中国站长_站,为中文网站提供动力

权限授予的用户,它由一个用户名和主机名组成。在MySQL中,你不仅指定谁能连接,还有从哪里连接。这允许你让两个同名用户从不同地方连接。MySQL让你区分他们,并彼此独立地赋予权限。

中国.站长站

MySQL中的一个用户名就是你连接服务器时指定的用户名,该名字不必与你的Unix登录名或Windows名联系起来。缺省地,如果你不明确指定一个名字,客户程序将使用你的登录名作为MySQL用户名。这只是一个约定。你可以在授权表中将该名字改为nobody,然后以nobody连接执行需要超级用户权限的操作。

[中国站长站]

password Www_Chinaz_com

赋予用户的口令,它是可选的。如果你对新用户没有指定IDENTIFIED BY子句,该用户不赋给口令(不安全)。对现有用户,任何你指定的口令将代替老口令。如果你不指定口令,老口令保持不变,当你用IDENTIFIED BY时,口令字符串用改用口令的字面含义,GRANT将为你编码口令,不要象你用SET PASSWORD 那样使用password()函数。 中国站长_站,为中文网站提供动力

WITH GRANT OPTION子句是可选的。如果你包含它,用户可以授予权限通过GRANT语句授权给其它用户。你可以用该子句给与其它用户授权的能力。 [中国站长站]

用户名、口令、数据库和表名在授权表记录中是大小写敏感的,主机名和列名不是。 Www~Chinaz~com

一般地,你可以通过询问几个简单的问题来识别GRANT语句的种类:

中国.站长站

谁能连接,从那儿连接?

Chinaz.com

用户应该有什么级别的权限,他们适用于什么?

中国站长_站,为中文网站提供动力

用户应该允许管理权限吗? 中国站长.站

下面就讨论一些例子。 站.长站

1.1 谁能连接,从那儿连接?

Chinaz@com

你可以允许一个用户从特定的或一系列主机连接。有一个极端,如果你知道降职从一个主机连接,你可以将权限局限于单个主机:

GRANT ALL ON samp_db.* TO boris@localhost IDENTIFIED BY "ruby"

中国站.长.站

GRANT ALL ON samp_db.* TO fred@res.mars.com IDENTIFIED BY "quartz" 中国站长.站

(samp_db.*意思是“samp_db数据库的所有表)另一个极端是,你可能有一个经常旅行并需要能从世界各地的主机连接的用户max。在这种情况下,你可以允许他无论从哪里连接:

中国站长.站

GRANT ALL ON samp_db.* TO max@% IDENTIFIED BY "diamond" 站.长站

“%”字符起通配符作用,与LIKE模式匹配的含义相同。在上述语句中,它意味着“任何主机”。所以max和max@%等价。这是建立用户最简单的方法,但也是最不安全的。 Www@Chinaz@com

取其中,你可以允许一个用户从一个受限的主机集合访问。例如,要允许mary从snake.net域的任何主机连接,用一个%.snake.net主机指定符:

[中国站长站]

GRANT ALL ON samp_db.* TO mary@.snake.net IDENTIFIED BY "quartz";

中国站长_站,为中文网站提供动力

如果你喜欢,用户标识符的主机部分可以用IP地址而不是一个主机名来给定。你可以指定一个IP地址或一个包含模式字符的地址,而且,从MySQL 3.23,你还可以指定具有指出用于网络号的位数的网络掩码的IP号: Chinaz~com

GRANT ALL ON samp_db.* TO boris@192.168.128.3 IDENTIFIED BY "ruby"

中国站长.站

GRANT ALL ON samp_db.* TO fred@192.168.128.% IDENTIFIED BY "quartz" Chinaz@com

GRANT ALL ON samp_db.* TO rex@192.168.128.0/17 IDENTIFIED BY "ruby" [中国站长站]

第一个例子指出用户能从其连接的特定主机,第二个指定对于C类子网192.168.128的IP模式,而第三条语句中,192.168.128.0/17指定一个17位网络号并匹配具有192.168.128头17位的IP地址。 中国.站.长站

如果MySQL抱怨你指定的用户值,你可能需要使用引号(只将用户名和主机名部分分开加引号)。 Chinaz^com

GRANT ALL ON samp_db.president TO "my friend"@"boa.snake.net"

www.Chinaz.com

1.2 用户应该有什么级别的权限和它们应该适用于什么? 站.长站

你可以授权不同级别的权限,全局权限是最强大的,因为它们适用于任何数据库。要使ethel成为可做任何事情的超级用户,包括能授权给其它用户,发出下列语句: 中.国.站长站

GRANT ALL ON *.* TO ethel@localhost IDENTIFIED BY "coffee" WITH GRANT OPTION Chinaz~com

ON子句中的*.*意味着“所有数据库、所有表”。从安全考虑,我们指定ethel只能从本地连接。*一个超级用户可以连接的主机通常是明智的,因为它*了试图破解口令的主机。

Www~Chinaz~com

有些权限(FILE、PROCESS、RELOAD和SHUTDOWN)是管理权限并且只能用"ON *.*"全局权限指定符授权。如果你愿意,你可以授权这些权限,而不授权数据库权限。例如,下列语句设置一个flush用户,他只能发出flush语句。这可能在你需要执行诸如清空日志等的管理脚本中会有用: 站.长站

GRANT RELOAD ON *.* TO flushl@localhost IDENTIFIED BY "flushpass" 中国站.长.站

一般地,你想授权管理权限,吝啬点,因为拥有它们的用户可以影响你的服务器的操作。 Www~Chinaz~com

数据库级权限适用于一个特定数据库中的所有表,它们可通过使用ON db_name.*子句授予: Chinaz^com

GRANT ALL ON samp_db TO bill@racer.snake.net INDETIFIED BY "rock" Chinaz@com

GRANT SELECT ON samp_db TO ro_user@% INDETIFIED BY "rock"

中国.站.长站

第一条语句向bill授权samp_db数据库中所有表的权限,第二条创建一个严格*访问的用户ro_user(只读用户),只能访问samp_db数据库中的所有表,但只有读取,即用户只能发出SELECT语句。

你可以列出一系列同时授予的各个权限。例如,如果你想让用户能读取并能修改现有数据库的内容,但不能创建新表或删除表,如下授予这些权限: Www@Chinaz@com

GRANT SELECT,INSERT,DELETE,UPDATE ON samp_db TO bill@snake.net INDETIFIED BY "rock"

中国.站.长站

对于更精致的访问控制,你可以在各个表上授权,或甚至在表的每个列上。当你想向用户隐藏一个表的部分时,或你想让一个用户只能修改特定的列时,列特定权限非常有用。如: www.Chinaz.com

GRANT SELECT ON samp_db.member TO bill@localhost INDETIFIED BY "rock"

中.国.站.长.站

GRANT UPDATE (expiration) ON samp_db. member TO bill@localhost 中国站长_站,为中文网站提供动力

第一条语句授予对整个member表的读权限并设置了一个口令,第二条语句增加了UPDATE权限,当只对expiration列。没必要再指定口令,因为第一条语句已经指定了。

Www^Chinaz^com

如果你想对多个列授予权限,指定一个用逗号分开的列表。例如,对assistant用户增加member表的地址字段的UPDATE权限,使用如下语句,新权限将加到用户已有的权限中:

[中国站长站]

GRANT UPDATE (street,city,state,zip) ON samp_db TO assistant@localhost

中国.站.长站

通常,你不想授予任何比用户确实需要的权限宽的权限。然而,当你想让用户能创建一个临时表以保存中间结果,但你又不想让他们在一个包含他们不应修改内容的数据库中这样做时,发生了要授予在一个数据库上的相对宽松的权限。你可以通过建立一个分开的数据库(如tmp)并授予开数据库上的所有权限来进行。例如,如果你想让来自mars.net域中主机的任何用户使用tmp数据库,你可以发出这样的GRANT语句:

中.国站长站

GRANT ALL ON tmp.* TO ""@mars.net

Chinaz^com

在你做完之后,用户可以创建并用tmp.tbl_name形式引用tmp中的表(在用户指定符中的""创建一个匿名用户,任何用户均匹配空白用户名)。 中.国站长站

1.3 用户应该被允许管理权限吗?

中.国.站.长.站

你可以允许一个数据库的拥有者通过授予数据库上的所有拥有者权限来控制数据库的访问,在授权时,指定WITH GRANT OPTION。例如:如果你想让alicia能从big.corp.com域的任何主机连接并具有sales数据库中所有表的管理员权限,你可以用如下GRANT语句:

[中国站长站]

GRANT ALL ON sales.* TO alicia@%.big.corp.com INDETIFIED BY "applejuice" WITH GRANT OPTION 中国站.长.站

在效果上WITH GRANT OPTION子句允许你把访问授权的权利授予另一个用户。要注意,拥有GRANT权限的两个用户可以彼此授权。如果你只给予了第一个用户SELECT权限,而另一个用户有GRANT加上SELECT权限,那么第二个用户可以是第一个用户更“强大”。 中国站长_站,为中文网站提供动力

2 撤权并删除用户

Chinaz_com

要取消一个用户的权限,使用REVOKE语句。REVOKE的语法非常类似于GRANT语句,除了TO用FROM取代并且没有INDETIFED BY和WITH GRANT OPTION子句: 中国站.长站

REVOKE privileges (columns) ON what FROM user 中国.站.长站

user部分必须匹配原来GRANT语句的你想撤权的用户的user部分。privileges部分不需匹配,你可以用GRANT语句授权,然后用REVOKE语句只撤销部分权限。

中.国站长站

REVOKE语句只删除权限,而不删除用户。即使你撤销了所有权限,在user表中的用户记录依然保留,这意味着用户仍然可以连接服务器。要完全删除一个用户,你必须用一条DELETE语句明确从user表中删除用户记录:

中国站.长.站

%mysql -u root MySQL
MySQL>DELETE FROM user
->WHERE User="user_name" and Host="host_name";
MySQL>FLUSH PRIVILEGES; 中.国站长站

DELETE语句删除用户记录,而FLUSH语句告诉服务器重载授权表。(当你使用GRANT和REVOKE语句时,表自动重载,而你直接修改授权表时不是。 [中国站长站]

热心网友 时间:2022-04-07 17:53

建议下载一个软件 phpmyadmin 是个可视化对mysql操作的工具,里面可以简单的完成这个任务!
MySQL用户管理使用user表进行权限控制mysql下的user表

在MySQL中,使用GRANT语句为用户赋予权限。语法如下:GRANT permission_type ON database_name.table_name TO ‘username’@’localhost’;其中,permission_type可以是SELECT, INSERT, UPDATE, DELETE等等。database_name为数据库的名称,table_name为表格的名称。使用’@...

...列授权详解如何限制用户对特定列的访问权限mysql一列授权

其中,privilegeTypes表示列授权类型,可取SELECT、INSERT、UPDATE或REFERENCES之一或多个的组合,columnNames表示需要授权的列名,tableName表示需要授权的表名,userName@host表示需要设置列授权的用户和主机地址。例如,以下语句为用户test在localhost上授予对表employees的id和name两列的SELECT和UPDATE权限:GRANT S...

如何设置mysql用户的权限

>> grant all privileges on *.* to testuser@localhost identified by "123456" WITH GRANT OPTION ;//设置用户testuser,拥有所有的操作权限,也就是管理员 ;>> grant select on *.* to testuser@localhost identified by "123456" WITH GRANT OPTION ;//设置用户testuser,只拥有【查询】操作...

MySQLRoot权限管理指南mysqlroot

1. 创建MySQL Root用户 您需要创建一个MySQL Root用户,以便具有管理数据库的权限。请按照以下步骤创建MySQL Root用户:1)使用管理员特权登录MySQL:mysql -u root -p 2)输入管理员特权密码进入MySQL。3)运行以下命令:GRANT ALL PRIVILEGES ON *.* TO ‘root’@’localhost̵...

MySQL中用户管理简介MySQL中uter

MySQL 用户分为两种类型:普通用户和超级用户。普通用户只能访问其所需要的数据,超级用户则具有管理员权限,可以控制整个数据库。创建新用户 要创建新用户,需要使用 CREATE USER 命令。命令格式如下:CREATE USER ‘username’@’localhost’ IDENTIFIED BY ‘password’...

如何使用MYSQLUSER创建和管理MySQL用户MYSQLUSER

您可以使用以下命令查看MySQL中的所有用户:SELECT User FROM mysql.user;使用以下命令删除用户:DROP USER ‘username’@’localhost’;请注意,要删除用户,您必须拥有管理员权限。结论 如您所见,在MySQL中创建用户并分配权限是相当简单的。以上步骤可以让您创建一个新用户以进行...

如何在MySQL中创建用户和授予权限

因此需要mysql管理员(root)权限来创建用户帐户并为数据库分配权限。对于信息,MySQL root帐户与系统root帐户不同,它们之间没有任何关系。(相关推荐:MySQL教程)1、在MySQL中创建新用户使用具有shell访问权限的root用户登录MySQL服务器并创建名为“rahul”的新用户。下面的命令只允许从localhost系统访问用户...

如何用phpmyadmin设置mysql数据库用户的权限

一、首先您需要安装配置phpMyAdmin到您的服务器 安装好以后,来到 phpMyAdmin 的首页 二、创建好的用户,点击上图上的权限后,可以看到添加新用户 点击“添加新用户”添加一个新的数据库用户名 如下图所示:三、权限设置 编辑这个用户的权限 如下图所示:其中增加用户的同时也可以填写用户的权限,也可以...

如何为MariaDB数据库用户分配和撤销权限?

UPDATE,DELETE,INSERT ON mysql.user FROM luke@localhost,将权限移除。这种明确的权限管理方式有助于维护系统的安全和组织的效率。在进行这些操作时,不要忘记每条命令后都需要分号(;)来结束。随着实践的增多,操作会变得熟练。接下来,我们会进一步学习数据库内容的修改方法,包括权限的增删操作。

MySQL多用户管理不同owner的数据库访问权限控制mysql不同owner

1. MySQL多用户管理基础 在MySQL中,每一个用户都有独立的用户名和密码,用于登录MySQL系统。当用户成功登录后,可以执行特定的操作,例如创建、读取、更新、删除数据库中的数据。MySQL中有三种基本的用户身份:超级用户(root)、管理员(user)和普通用户。其中超级用户拥有MySQL系统的最高权限,可以执行任何...

mysql添加用户并设置权限 mysql新增用户和权限 查看mysql用户表的权限 mysql给用户所有权限 mysql给用户添加权限 mysql删除用户权限 mysql授予用户权限 mysql赋予用户权限 mysql权限设置
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
太阳能水桶上橡胶圈凸出来的那部分烂了,怎么办?橡胶圈套上去松?漏水... 自考期限是几年? 太阳能第一次安安管子胶圈漏水是不是等太阳能水温上来以后热胀冷缩后... ...自考试点本科,请问它期限是多长时间?必须四年内修完吗? 自考本科时间规定几年 自考考过的科目有时间限制吗 自学考有没有时间限制 2024年各省高级经济师报名时间是几号几点 自考要多少年才能考完 自考必须要在8年内考完吗 没有这个mysqlinstanceconfig.exe 怎样设置character mysql5.5新版自定义安装怎么选 STM32107,一用USART1发送数据,PC8,PC9就会掉电... 30周年自由高达模型的PC1,PC8用在哪,怎么多出来了? 游戏耳机,头戴式,价格一百以内,要求麦好点的。 sennheiser是什么品牌 SRM PC8怎么解锁 森海塞尔pc8的耳机买了直接用吗 牛奶盒属于什么垃圾? 脏牛奶盒是什么垃圾 酸奶盒子属于干垃圾还是湿垃圾 牛奶盒属于什么垃圾 塑料类or 纸类? 洗干净的牛奶盒是什么垃圾 牛奶纸盒是什么垃圾 一次性纸杯和牛奶盒子是一种垃圾吗? 牛奶盒是可回收垃圾吗 牛奶盒属于什么垃圾? 喝过的牛奶盒属于什么垃圾 牛奶盒属于可回收垃圾吗 牛奶盒是什么垃圾 安装mysql5.5怎么连接数据库文件 关于Mysql的配置问题 在mysql中怎样显示表里的内容 如何提高mysql的安全性 3306 MYSQL 访问 安全配置 11. MySQL数据库中可使用____________ 语句增加新... 如何在windows里面安装MySQL 免安装版mysql密码如何设置 如何将mysql运行在非默认目录中 如何在Ubuntu 16.04上安装最新的MySQL windows怎么安装mysql mysql数据库安装过程为什么要删除匿名用户 my sql 是什么 在windows下配置mysql服务器默认使用的用户是 被对方删除或者拉黑,我这边还能有之前的聊天记录吗? 端午节英语祝福语 端午节英文祝福语? 端午节短信祝福语大全 端午节祝福语少于10字 端午节有那些祝福语