您当前位置:优侠库 > 资讯攻略 >
来源:未知
2020-07-12 19:00:51 浏览: 分类:资讯攻略

MySQL在命名用过程中所遇到的常见问题

本文开设问答,回答mysql命名中遇到的常见问题。

谁能从那里连接和?

您可以允许用户从特定主机或一系列主机进行连接。在一个极端情况下,如果您知道降级是从主机连接的,您可以将权限限制到单个主机:

授予samp_db上的所有权限。*到boris@localhost

由& quotruby & quot授予samp_db上的所有权限。*

到fred@res.mars.com,由& quot石英& quot

(samp_db。*表示“在另一个极端,您可能有一个经常出差的用户max,他需要能够连接世界各地的主机。在这种情况下,您可以允许他从任何地方连接:

授予samp_db上的所有权限。*最大@%由& quot钻石& quot

"% & quot字符充当通配符,其含义与LIKE模式匹配相同。在上面的语句中,它表示“任何主机”。所以max和max@%是等价的。这是最容易建立用户的方法,但也是最不安全的。

是的,您可以允许用户从受限主机集进行访问。例如,要允许mary从snake.net域中的任何主机进行连接,请使用%.snake.net主机说明符:

授予samp_db上的所有权限。*给mary@.snake.net,标识为& quot石英& quot;

如果您愿意,用户标识符的主机部分可以由IP地址而不是主机名给出。您可以指定IP地址或包含模式字符的地址。此外,在MySQL 3.23中,您还可以使用网络掩码指定一个IP号,该掩码指示网络号所用的位数:

授予samp_db上的所有权限。*给boris@192.168.128.3,由& quotruby & quot授予samp_db上的所有权限。*致弗雷德@192.168.128。%由& quot石英& quot授予samp_db上的所有权限。*发给雷克斯@192.168.128.0/17,由& quotruby & quot

第一个示例指示用户可以连接的特定主机,第二个示例指定C类子网192.168.128的IP模式,在第三个语句中,192.168.128.0/17指定一个17位数字的网络号,并将IP地址与192.168.128的前17位数字匹配。

如果MySQL抱怨您指定的用户值,您可能需要使用引号(只单独引用用户名和主机名)。

将samp_db.president上的所有权限授予& quot我的朋友& quot@ & quotboa . snake . net & quot;

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

您可以授权不同级别的权限。全局权限是最强大的,因为它们适用于任何数据库。要使ethel成为可以做任何事情(包括授权其他用户)的超级用户,请发出以下语句:

在*上授予全部权限。*致ethel@localhost

由& quot咖啡带有授予选项

*.*在ON子句中表示“所有数据库,所有表"。出于安全原因,我们指定ethel只能本地连接。限制超级用户可以连接的主机通常是明智的,因为这限制了试图破解密码的主机。

某些权限(文件、进程、重新加载和关闭)是管理权限,只能与“ON *”一起使用。* & quot全局许可指示符授权。如果愿意,可以授权这些权限,而不是数据库权限。例如,以下语句设置了一个flush用户,该用户只能发出flush语句。当您需要执行管理脚本(如清除空日志)时,这可能很有用:

授权在*重新加载。*刷新由& quot冲洗通过& quot。

一般你要授予管理权限,所以要吝啬,因为拥有这些权限的用户可以影响你的服务器的运行。

数据库级权限适用于特定数据库中的所有表,可以使用db_name上的授予这些权限。*条款:

将samp_db上的所有内容授予bill@racer.snake.net

由& quot摇滚& quot对samp_db授予SELECT权限

收件人ro_user@%由& quot摇滚& quot

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

您可以列出同时授予的一系列权限。例如,如果您希望用户能够读取和修改现有数据库的内容,但不能创建新表或删除表,请按如下方式授予这些权限:

将samp_db上的SELECT、INSERT、DELETE和UPDATE权限授予由& quot摇滚& quot。

为了进行更精确的访问控制,您可以对每个表进行授权,甚至可以对表中的每一列进行授权。当您希望对用户隐藏表的某些部分,或者希望用户只修改特定的列时,特定于列的权限非常有用。比如:

将samp_db.member上的SELECT权限授予bill@localhost

由& quot摇滚& quot授权更新(过期)时间

第一条语句授予对整个成员表的读取权限并设置密码,第二条语句增加了更新权限,此时只使用了expiration列。不需要指定密码,因为已经指定了第一条语句。

如果要向多列授予权限,请指定逗号分隔的列表。例如,要将成员表的地址字段的更新权限添加到助理用户,请使用以下语句,新权限将被添加到用户的现有权限中:

将samp_db上得更新(街道,城市,州,邮政编码)授予assistant@localhost .

通常,您不希望授予任何超出用户实际需要的权限。但是,当您希望用户创建一个临时表来存储中间结果,但又不希望他们在包含不应该修改的内容的数据库中这样做时,就会出现一个相对宽松的授予数据库的权限。您可以通过建立一个单独的数据库(如tmp)并授予该数据库上的所有权限来实现这一点。例如,如果希望来自mars.net域中主机的任何用户使用tmp数据库,可以发出GRANT语句:GRANT ALL ON tmp。*到" & quot@mars.net .

完成后,用户可以在tmp中以tmp.tbl_name("在用户说明符中")的形式创建并引用该表创建一个匿名用户,任何用户匹配空白色用户名)。

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

第一步:

通过向数据库的所有所有者授予权限,可以允许数据库的所有者控制对数据库的访问。授予权限时,请指定WITH GRANT OPTION。例如,如果希望alicia能够从big.corp.com域中的任何主机进行连接,并拥有销售数据库中所有表的管理员权限,可以使用以下GRANT语句:

授予所有销售。*致alicia@%.big.corp.com

由& quot苹果汁& quot带有授予选项

实际上,WITH GRANT OPTION子句允许您将访问授权授予另一个用户。请注意,具有GRANT权限的两个用户可以相互授权。如果您只授予第一个用户SELECT权限,而另一个用户具有GRANT plus SELECT权限,则第二个用户可以成为第一个用户。强大”。

第二步:

撤销和删除用户。若要撤销用户的权限,请使用revoke语句。REVOKE的语法与GRANT语句非常相似,只是TO由FROM替换,并且没有未定义的by和WITH GRANT OPTION子句:

从用户撤销权限(列)

用户部分必须与要撤销的用户的原始GRANT语句的用户部分相匹配。权限不需要匹配,可以用GRANT语句授权,然后用REVOKE语句只撤销部分权限。

REVOKE语句只删除权限,不删除用户。即使撤销所有权限,用户表中的用户记录仍会保留,这意味着用户仍然可以连接到服务器。要完全删除用户,必须使用DELETE语句从用户表中显式删除用户记录:

% MySQL-u root MySQL MySQL & gt;从用户中删除

-& gt;其中User = & quot用户名& quot而Host = & quot主机名& quot;

mysql & gt刷新权限;

DELETE语句删除用户记录,而FLUSH语句告诉服务器重新加载授权表。(当使用GRANT和REVOKE语句时,该表会自动重载,但在直接修改授权表时不会。)

关键词:常见问题,遭遇,过程,生活

优侠库网站每天提供最新最热门的安卓手机软件、游戏下载、分享热门手游资讯攻略教程、手机软件教程步骤,专注安卓手机游戏软件下载。

本文链接:http://www.123down.cn/gonglue/227226.html

攻略资讯
安卓软件
安卓游戏