要管理MySQL帐户,请使用相应的SQL语句:
帐户管理语句导致服务器对底层授权表进行适当的修改,这些修改将在第6.2.3节“授予表格”.
直接修改拨款表使用语句,如插入
,更新
,或删除
不鼓励,你自己承担风险。服务器可以随意忽略由于此类修改而变得畸形的行。
从MySQL 5.7.18开始,对于任何修改授权表的操作,服务器都会检查表是否具有预期的结构,如果没有则产生错误。mysql_upgrade必须运行以将表更新为预期的结构。
创建帐户的另一个选择是使用GUI工具MySQL Workbench。另外,一些第三方程序提供MySQL帐户管理功能。phpMyAdmin
就是这样一个程序。
本节讨论以下主题:
有关这里讨论的语句的更多信息,请参见第13.7.1节“帐户管理报表”.
的示例说明如何使用mysql建立新帐户的客户端程序。这些示例假设MySQL根
账户有创建用户
权限及其授予其他帐户的所有权限。
在命令行,连接到服务器作为MySQL根
用户,在密码提示处提供适当的密码:
mysql -u root -p Enter password:(此处输入root密码)
连接到服务器后,您可以添加新的帐户。下面的示例使用创建用户
而且格兰特
设置四个帐户(在这里您可以看到'
,以合适的密码代替):密码
'
CREATE USER 'finley'@'localhost' IDENTIFIED BY '密码”;全体*上。*给'finley'@'localhost'授权选项;创建用户'finley'@'%.example.com' IDENTIFIED BY '密码”;全体*上。* 'finley'@'%.example.com' WITH GRANT OPTION;创建用户“admin”@“localhost”密码”;授权重新加载,在*上处理。*“admin”@“localhost”;创建用户'假' @ ' localhost ';
由这些语句创建的帐户具有以下属性:
两个帐户的用户名为
芬利
.两者都是超级用户帐户,拥有做任何事情的全部全局特权。的“芬利”@“localhost”
Account只能在从本地连接时使用。的”芬利“@”% .example.com '
账户使用“%”
通配符在主机部分,因此它可以用来连接从任何主机在example.com
域。的
“芬利”@“localhost”
帐户是必要的,如果有一个匿名用户帐户本地主机
.没有“芬利”@“localhost”
帐户,该匿名用户帐户优先芬利
从本地主机连接芬利
被视为匿名用户。这样做的原因是匿名用户帐户有一个更具体的宿主
列的值。芬利的@‘%’
Account和因此出现在用户
表的排序顺序。(信息用户
表的排序,看到第6.2.5节,“访问控制,第一阶段:连接验证”.)的
“admin”@“localhost”
帐户只能由管理
从本地主机连接。它被授予了全球性重新加载
而且过程
管理权限。这些特权使管理
用户来执行mysqladmin重载,mysqladmin刷新,mysqladmin冲洗,xxx
命令,以及mysqladmin processlist.不授予访问任何数据库的特权。您可以使用格兰特
语句。的
“假”@“localhost”
帐号无密码(不安全,不推荐使用)。此帐户只能用于从本地主机连接。不授予任何特权。假定您将特定的特权授予正在使用的帐户格兰特
语句。
前面的示例在全局级别授予特权。下一个示例创建三个帐户并授予它们较低级别的访问权限;也就是说,针对特定的数据库或数据库中的对象。每个帐户都有一个用户名自定义
,但主机名部分不同:
创建用户'custom'@'localhost' IDENTIFIED BY '密码”;授予所有在银行帐户。*“定制”@“localhost”;创建用户'custom'@'host47.example.com' IDENTIFIED BY '密码”;授权选择,插入,更新,删除,创建,删除费用。*“定制”@“host47.example.com”;创建用户'custom'@'%.example.com' IDENTIFIED BY '密码”;授权客户选择,插入,更新,删除,创建,删除。地址“定制”@“% .example.com”;
这三个账号的使用方式如下:
的
“自定义”@“localhost”
帐户具有访问的所有数据库级特权bankaccount
数据库。该帐户只能从本地主机连接到服务器。的
“自定义”@“host47.example.com”
帐户具有特定的数据库级权限来访问费用
数据库。该帐户只能在主机上连接服务器host47.example.com
.的
“自定义”@“% .example.com '
帐户具有特定的表级权限来访问地址
表中客户
数据库中的任意主机example.com
域。帐户可用于从域中的所有计算机连接到服务器%
帐户名的主机部分中的通配符。
要查看帐户的特权,请使用秀奖助金
:
mysql> SHOW grant FOR 'admin'@'localhost';+-----------------------------------------------------+ | 资助admin@localhost | +-----------------------------------------------------+ | *格兰特重载、过程。*“admin”@ localhost ' | +-----------------------------------------------------+
要查看帐户的非特权属性,请使用显示创建用户
:
mysql >显示创建用户'管理' @ ' localhost ' \ G *************************** 1。row *************************** CREATE USER for admin@localhost: CREATE USER 'admin'@'localhost' IDENTIFIED WITH 'mysql_native_password' AS '*67ACDEBDAB923990001F0FFB017EB8ED41861105' REQUIRE NONE PASSWORD EXPIRE DEFAULT ACCOUNT UNLOCK
要撤销帐户特权,请使用撤销
声明。可以在不同级别撤销特权,正如可以在不同级别授予特权一样。
撤销全球特权:
撤销*上的所有。*从“芬利”@“% .example.com”;撤销*上的重新加载。*从“admin”@“localhost”;
撤销数据库级权限:
撤销创建,降低费用。*从“定制”@“host47.example.com”;
撤销表级权限:
撤销对客户的插入、更新、删除。地址从“定制”@“% .example.com”;
要检查特权撤销的效果,使用秀奖助金
:
mysql> SHOW grant FOR 'admin'@'localhost';+---------------------------------------------+ | 资助admin@localhost | +---------------------------------------------+ | 格兰特过程*。*“admin”@ localhost ' | +---------------------------------------------+
要删除帐户,请使用减少用户
声明。例如,删除以前创建的一些帐户:
把用户“芬利”@“localhost”;降低用户的芬利@ % .example.com的;删除用户'管理' @ ' localhost ';删除用户'假' @ ' localhost ';