- 浏览: 125546 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
zzzhenyu:
您好,我现在也遇到了同样的问题,请问你后来知道为什么了吗?
error at ::0 can't find referenced pointcut allMethod
向MySQL增加新用户账户
可以用两种方式创建MySQL账户:
• 使用GRANT语句
• 直接操作MySQL授权表
最好的方法是使用GRANT语句,因为这样更精确,错误少。
创建账户的其它方法是使用MySQL账户管理功能的第三方程序。phpMyAdmin即是一个程序。
下面的示例说明如何使用MySQL客户端程序来设置新用户。你必须以MySQL root用户连接MySQL服务器,并且root账户必须有mysql数据库的Insert权限和RELOAD管理权限。
首先,使用MySQL程序以MySQL root用户来连接服务器:
shell> MySQL --user=root MySQL
如果你为root账户指定了密码,还需要为该MySQL命令和本节中的其它命令提供--password或-p选项。
以root连接到服务器上后,可以添加新账户。下面的语句使用GRANT来设置四个新账户:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'
-> IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'
-> IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
mysql> GRANT RELOAD,PROCESS ON *.* TO 'admin'@'localhost';
mysql> GRANT USAGE ON *.* TO 'dummy'@'localhost';
用GRANT语句创建的账户有下面的属性:
• 其中两个账户有相同的用户名monty和密码some_pass。两个账户均为超级用户账户,具有完全的权限可以做任何事情。一个账户 ('monty'@'localhost')只用于从本机连接时。另一个账户('monty'@'%')可用于从其它主机连接。请注意monty的两个账户必须能从任何主机以monty连接。没有localhost账户,当monty从本机连接时,mysql_install_db创建的localhost的匿名用户账户将占先。结果是,monty将被视为匿名用户。原因是匿名用户账户的Host列值比'monty'@'%'账户更具体,这样在user表排序顺序中排在前面。
• 一个账户有用户名admin,没有密码。该账户只用于从本机连接。授予了RELOAD和PROCESS管理权限。这些权限允许admin用户执行mysqladmin reload、mysqladmin refresh和mysqladmin flush-xxx命令,以及mysqladmin processlist。未授予访问数据库的权限。你可以通过GRANT语句添加此类权限。
• 一个账户有用户名dummy,没有密码。该账户只用于从本机连接。未授予权限。通过GRANT语句中的USAGE权限,你可以创建账户而不授予任何权限。它可以将所有全局权限设为'N'。假定你将在以后将具体权限授予该账户。
除了GRANT,你可以直接用Insert语句创建相同的账户,然后使用FLUSH PRIVILEGES告诉服务器重载授权表:
shell> mysql --user=root mysql
mysql> Insert INTO user
-> VALUES('localhost','monty',PASSWORD('some_pass'),
-> 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
mysql> Insert INTO user
-> VALUES('%','monty',PASSWORD('some_pass'),
-> 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
mysql> Insert INTO user SET Host='localhost',User='admin',
-> Reload_priv='Y', Process_priv='Y';
mysql> Insert INTO user (Host,User,Password)
-> VALUES('localhost','dummy','');
mysql> FLUSH PRIVILEGES;
当你用Insert创建账户时使用FLUSH PRIVILEGES的原因是告诉服务器重读授权表。否则,只有重启服务器后更改方会被注意到。使用 GRANT,则不需要使用FLUSH PRIVILEGES。
用Insert使用PASSWORD()函数是为了加密密码。GRANT语句为你加密密码,因此不需要PASSWORD()。
'Y'值启用账户权限。对于admin账户,还可以使用更加可读的Insert扩充的语法(使用SET)。
在为dummy账户的Insert语句中,只有user表中的Host、User和Password列记录为指定的值。没有一个权限列为显式设置,因此MySQL将它们均指定为 默认值'N'。这样等同于GRANT USAGE的操作。
请注意要设置超级用户账户,只需要创建一个权限列设置为'Y'的user表条目。user表权限为全局权限,因此其它 授权表不再需要条目。
下面的例子创建3个账户,允许它们访问专用数据库。每个账户的用户名为custom,密码为obscure。
要想用GRANT创建账户,使用下面的语句:
shell> MySQL --user=root MySQL
shell> mysql --user=root mysql
mysql> GRANT Select,Insert,Update,Delete,Create,Drop
-> ON bankaccount.*
-> TO 'custom'@'localhost'
-> IDENTIFIED BY 'obscure';
mysql> GRANT Select,Insert,Update,Delete,Create,Drop
-> ON expenses.*
-> TO 'custom'@'whitehouse.gov'
-> IDENTIFIED BY 'obscure';
mysql> GRANT Select,Insert,Update,Delete,Create,Drop
-> ON customer.*
-> TO 'custom'@'server.domain'
-> IDENTIFIED BY 'obscure';
这3个账户可以用于:
• 第1个账户可以访问bankaccount数据库,但只能从本机访问。
• 第2个账户可以访问expenses数据库,但只能从主机whitehouse.gov访问。
• 第3个账户可以访问customer数据库,但只能从主机server.domain访问。
要想不用GRANT设置custom账户,使用Insert语句直接修改 授权表:
shell> mysql --user=root mysql
mysql> Insert INTO user (Host,User,Password)
-> VALUES('localhost','custom',PASSWORD('obscure'));
mysql> Insert INTO user (Host,User,Password)
-> VALUES('whitehouse.gov','custom',PASSWORD('obscure'));
mysql> Insert INTO user (Host,User,Password)
-> VALUES('server.domain','custom',PASSWORD('obscure'));
mysql> Insert INTO db
-> (Host,Db,User,Select_priv,Insert_priv,
-> Update_priv,Delete_priv,Create_priv,Drop_priv)
-> VALUES('localhost','bankaccount','custom',
-> 'Y','Y','Y','Y','Y','Y');
mysql> Insert INTO db
-> (Host,Db,User,Select_priv,Insert_priv,
-> Update_priv,Delete_priv,Create_priv,Drop_priv)
-> VALUES('whitehouse.gov','expenses','custom',
-> 'Y','Y','Y','Y','Y','Y');
mysql> Insert INTO db
-> (Host,Db,User,Select_priv,Insert_priv,
-> Update_priv,Delete_priv,Create_priv,Drop_priv)
-> VALUES('server.domain','customer','custom',
-> 'Y','Y','Y','Y','Y','Y');
mysql> FLUSH PRIVILEGES;
前3个Insert语句在user表中加入条目,允许用户custom从各种主机用给定的密码进行连接,但不授予全局权限(所有权限设置为 默认值'N')。后面3个Insert语句在user表中加入条目,为custom授予bankaccount、expenses和customer数据库权限,但只能从合适的主机访问。通常若直接修改 授权表,则应告诉服务器用FLUSH PRIVILEGES重载授权表,使权限更改生效。
如果你想要让某个用户从给定域的所有机器访问(例如,mydomain.com),你可以在账户名的主机部分使用含‘%’通配符的GRANT语句:
mysql> GRANT ...
-> ON *.*
-> TO 'myname'@'%.mydomain.com'
-> IDENTIFIED BY 'mypass';
要想通过直接修改授权表来实现:
mysql> Insert INTO user (Host,User,Password,...)
-> VALUES('%.mydomain.com','myname',PASSWORD('mypass'),...);
mysql> FLUSH PRIVILEGES;
从MySQL删除用户账户
要想移除账户,应使用Drop USER语句.
Drop USER user [, user] ...
Drop USER语句用于删除一个或多个MySQL账户。要使用Drop USER,您必须拥有mysql数据库的全局Create USER权限或Delete权限。使用与GRANT或REVOKE相同的格式为每个 账户命名;例如,'jeffrey'@'localhost'。 账户名称的用户和主机部分与用户表记录的User和Host列值相对应。
使用Drop USER,您可以取消一个账户和其权限,操作如下:
Drop USER user;
该语句可以删除来自所有授权表的帐户权限记录。
drop user username@'%'
drop user username@localhost
可以用两种方式创建MySQL账户:
• 使用GRANT语句
• 直接操作MySQL授权表
最好的方法是使用GRANT语句,因为这样更精确,错误少。
创建账户的其它方法是使用MySQL账户管理功能的第三方程序。phpMyAdmin即是一个程序。
下面的示例说明如何使用MySQL客户端程序来设置新用户。你必须以MySQL root用户连接MySQL服务器,并且root账户必须有mysql数据库的Insert权限和RELOAD管理权限。
首先,使用MySQL程序以MySQL root用户来连接服务器:
shell> MySQL --user=root MySQL
如果你为root账户指定了密码,还需要为该MySQL命令和本节中的其它命令提供--password或-p选项。
以root连接到服务器上后,可以添加新账户。下面的语句使用GRANT来设置四个新账户:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'
-> IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'
-> IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
mysql> GRANT RELOAD,PROCESS ON *.* TO 'admin'@'localhost';
mysql> GRANT USAGE ON *.* TO 'dummy'@'localhost';
用GRANT语句创建的账户有下面的属性:
• 其中两个账户有相同的用户名monty和密码some_pass。两个账户均为超级用户账户,具有完全的权限可以做任何事情。一个账户 ('monty'@'localhost')只用于从本机连接时。另一个账户('monty'@'%')可用于从其它主机连接。请注意monty的两个账户必须能从任何主机以monty连接。没有localhost账户,当monty从本机连接时,mysql_install_db创建的localhost的匿名用户账户将占先。结果是,monty将被视为匿名用户。原因是匿名用户账户的Host列值比'monty'@'%'账户更具体,这样在user表排序顺序中排在前面。
• 一个账户有用户名admin,没有密码。该账户只用于从本机连接。授予了RELOAD和PROCESS管理权限。这些权限允许admin用户执行mysqladmin reload、mysqladmin refresh和mysqladmin flush-xxx命令,以及mysqladmin processlist。未授予访问数据库的权限。你可以通过GRANT语句添加此类权限。
• 一个账户有用户名dummy,没有密码。该账户只用于从本机连接。未授予权限。通过GRANT语句中的USAGE权限,你可以创建账户而不授予任何权限。它可以将所有全局权限设为'N'。假定你将在以后将具体权限授予该账户。
除了GRANT,你可以直接用Insert语句创建相同的账户,然后使用FLUSH PRIVILEGES告诉服务器重载授权表:
shell> mysql --user=root mysql
mysql> Insert INTO user
-> VALUES('localhost','monty',PASSWORD('some_pass'),
-> 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
mysql> Insert INTO user
-> VALUES('%','monty',PASSWORD('some_pass'),
-> 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
mysql> Insert INTO user SET Host='localhost',User='admin',
-> Reload_priv='Y', Process_priv='Y';
mysql> Insert INTO user (Host,User,Password)
-> VALUES('localhost','dummy','');
mysql> FLUSH PRIVILEGES;
当你用Insert创建账户时使用FLUSH PRIVILEGES的原因是告诉服务器重读授权表。否则,只有重启服务器后更改方会被注意到。使用 GRANT,则不需要使用FLUSH PRIVILEGES。
用Insert使用PASSWORD()函数是为了加密密码。GRANT语句为你加密密码,因此不需要PASSWORD()。
'Y'值启用账户权限。对于admin账户,还可以使用更加可读的Insert扩充的语法(使用SET)。
在为dummy账户的Insert语句中,只有user表中的Host、User和Password列记录为指定的值。没有一个权限列为显式设置,因此MySQL将它们均指定为 默认值'N'。这样等同于GRANT USAGE的操作。
请注意要设置超级用户账户,只需要创建一个权限列设置为'Y'的user表条目。user表权限为全局权限,因此其它 授权表不再需要条目。
下面的例子创建3个账户,允许它们访问专用数据库。每个账户的用户名为custom,密码为obscure。
要想用GRANT创建账户,使用下面的语句:
shell> MySQL --user=root MySQL
shell> mysql --user=root mysql
mysql> GRANT Select,Insert,Update,Delete,Create,Drop
-> ON bankaccount.*
-> TO 'custom'@'localhost'
-> IDENTIFIED BY 'obscure';
mysql> GRANT Select,Insert,Update,Delete,Create,Drop
-> ON expenses.*
-> TO 'custom'@'whitehouse.gov'
-> IDENTIFIED BY 'obscure';
mysql> GRANT Select,Insert,Update,Delete,Create,Drop
-> ON customer.*
-> TO 'custom'@'server.domain'
-> IDENTIFIED BY 'obscure';
这3个账户可以用于:
• 第1个账户可以访问bankaccount数据库,但只能从本机访问。
• 第2个账户可以访问expenses数据库,但只能从主机whitehouse.gov访问。
• 第3个账户可以访问customer数据库,但只能从主机server.domain访问。
要想不用GRANT设置custom账户,使用Insert语句直接修改 授权表:
shell> mysql --user=root mysql
mysql> Insert INTO user (Host,User,Password)
-> VALUES('localhost','custom',PASSWORD('obscure'));
mysql> Insert INTO user (Host,User,Password)
-> VALUES('whitehouse.gov','custom',PASSWORD('obscure'));
mysql> Insert INTO user (Host,User,Password)
-> VALUES('server.domain','custom',PASSWORD('obscure'));
mysql> Insert INTO db
-> (Host,Db,User,Select_priv,Insert_priv,
-> Update_priv,Delete_priv,Create_priv,Drop_priv)
-> VALUES('localhost','bankaccount','custom',
-> 'Y','Y','Y','Y','Y','Y');
mysql> Insert INTO db
-> (Host,Db,User,Select_priv,Insert_priv,
-> Update_priv,Delete_priv,Create_priv,Drop_priv)
-> VALUES('whitehouse.gov','expenses','custom',
-> 'Y','Y','Y','Y','Y','Y');
mysql> Insert INTO db
-> (Host,Db,User,Select_priv,Insert_priv,
-> Update_priv,Delete_priv,Create_priv,Drop_priv)
-> VALUES('server.domain','customer','custom',
-> 'Y','Y','Y','Y','Y','Y');
mysql> FLUSH PRIVILEGES;
前3个Insert语句在user表中加入条目,允许用户custom从各种主机用给定的密码进行连接,但不授予全局权限(所有权限设置为 默认值'N')。后面3个Insert语句在user表中加入条目,为custom授予bankaccount、expenses和customer数据库权限,但只能从合适的主机访问。通常若直接修改 授权表,则应告诉服务器用FLUSH PRIVILEGES重载授权表,使权限更改生效。
如果你想要让某个用户从给定域的所有机器访问(例如,mydomain.com),你可以在账户名的主机部分使用含‘%’通配符的GRANT语句:
mysql> GRANT ...
-> ON *.*
-> TO 'myname'@'%.mydomain.com'
-> IDENTIFIED BY 'mypass';
要想通过直接修改授权表来实现:
mysql> Insert INTO user (Host,User,Password,...)
-> VALUES('%.mydomain.com','myname',PASSWORD('mypass'),...);
mysql> FLUSH PRIVILEGES;
从MySQL删除用户账户
要想移除账户,应使用Drop USER语句.
Drop USER user [, user] ...
Drop USER语句用于删除一个或多个MySQL账户。要使用Drop USER,您必须拥有mysql数据库的全局Create USER权限或Delete权限。使用与GRANT或REVOKE相同的格式为每个 账户命名;例如,'jeffrey'@'localhost'。 账户名称的用户和主机部分与用户表记录的User和Host列值相对应。
使用Drop USER,您可以取消一个账户和其权限,操作如下:
Drop USER user;
该语句可以删除来自所有授权表的帐户权限记录。
drop user username@'%'
drop user username@localhost
发表评论
-
mysqldump导出数据库并转码
2012-05-17 21:00 2098使用mysqldump时,如果没有设置编码,将按照mysql配 ... -
mysql用户授权操作
2012-04-28 20:18 1040mysql 对用户授权的操作 grant 权限 ... -
MySQL中Index与Key的区别
2012-04-02 17:46 713看似有差不多的作用,加了Key的表与建立了Index的表,都可 ... -
MySQL添加删除主键的操作方法介绍
2012-04-02 10:46 740mysql添加删除主键 操作是非常基本的操作,下面就将教您m ... -
MYSQL引擎与字符设置
2012-04-02 09:45 812当年创建一个新表的时候,你可以通过添加一个ENGINE 或TY ... -
从SQL Server 2000向MYSQL5.1导入数据
2012-04-01 11:29 8731、在Sql Server 2000中选中右击所要导出的数据库 ... -
LOAD DATA INFILE语法
2012-03-31 15:33 1096013.2.5. LOAD DATA INFILE语法 ... -
mysql 修改已存在的表增加ID属性为auto_increment自动增长
2012-03-31 15:24 2451今天有需要将已经存在表设置自动增长属性 具体如下 al ... -
指定mysql的max_allowed_packet大小
2012-03-30 17:39 1071max-allowed-packet max_allow ... -
在MYSQL中使用全文索引(FULLTEXT index)
2012-03-30 17:25 1146MYSQL的一个很有用的特性是使用全文索引(FULLTEXT ... -
mysql 5修改字符集
2012-03-29 14:58 721查看编码: show variables like 'co ... -
MySQL数据库备份和还原的常用命令
2012-03-28 11:24 631备份MySQL数据库的命令 mysqldump -h ... -
MySQL关与大小写问题
2012-03-21 20:16 1011MySQL在Linux下数据库名、表名、列名、 ... -
linux centos 开启80、22、3306端口
2012-03-21 17:12 12611、设定 [root@localhost ~]# /sbin ... -
让MySql在Linux下不区分大小写
2012-02-20 17:03 977开发某程序,原先运行正常,但数据库布署在Linux上则在使 ... -
mysql查看表结构命令
2011-12-14 11:42 676mysql查看表结构命令,如下: desc 表名; sho ...
相关推荐
mysql审计了解用户对mysql的操作
设置mysql用户权限
mysql操作手册.pdf
2.2.4 删除MySQL用户以及用户组 7 三. 安装MySQL数据库 9 3.1 安装MySQL数据库 9 3.1.1 下载MySQL安装包 9 3.1.2 上传并解压MySQL安装包 9 3.1.3 添加系统MySQL组和MySQL用户 10 3.1.4 安装MySQL数据库 10 3.1.5 ...
现本着学习的目的,将c#访问操作MySQL数据库进行添加、删除、修改、显示等操作进行梳理。以Visual Studio 2012平台下的示例形式写下来,供以后查看。 一、新建一个Windows 窗体应用程序Test。 如下图所示: 二、...
MySql用户操作简单说明: 一, 创建用户: 命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 说明:username - 你将创建的用户名, host - 指定该用户在哪个主机上可以登陆,如果是本地用户可用...
MySQL是一种流行的关系型数据库管理系统,用于存储和管理数据。对于初学者来说,熟悉MySQL的基本操作非常重要,因为这些操作是使用MySQL的基础。...总之,学习MySQL的基本操作手册是成为一名合格的MySQL用户的第一步。
mysql用户本地登录 mysql数据库常用操作 创建存储过程 mysql用户管理 本地数据备份
mysql操作手册。This is the MySQL™ Reference Manual. It documents MySQL 8.0 through 8.0.14. It may include documentation of features of MySQL versions that have not yet been released. For information ...
MySQL JDBC 权限操作,授权、回收权限
该资源详细介绍了数据库设计数据库及表的操作、数据库单表操作、多表操作、视图、索引、存储引擎、数据库优化等知识
一个不错的MySql工具,操作简单实现,绝对可用!
mysql-binlog是MySQL数据库的二进制日志,用于记录用户对数据库操作的SQL语句((除了数据查询语句)信息。可以使用mysqlbin命令查看二进制日志的内容。 binlog 的作用 用于数据库的主从复制及数据的增量恢复。 ...
这是一个在visual studio2008环境用MFC语言对mysql数据库编写的一个简单的学生信息管理系统!如果你要用的话,你必须要安装了mysql,而且用户是root,密码是:123456,因为只供MFC和数据库初学者使用,本资源有可执行...
14.1.4 编译并安装用户定义函数 14.2 增加一个新的原生(native)函数 15 为MySQL增加新过程 15.1 analyse过程 15.2 编写一个过程 16 MySQL对 ODBC 支持 16.1 MyODBC 支持的操作系统 ...
内有激活码 挺好用的mysql工具 让你操作的时候像操作sqlserver一样方便
3,执行以下操作(查询用户的赋权权限,更改赋权权限 ,刷新生效) mysql> select user,host,grant_priv from user; +---------------+-----------+------------+ | user | host | grant_priv | +---------------+--...
操作MySQL数据库的常用命令,连接MYSQL、修改密码、增加新用户、显示命令、 将文本数据转到数据库中、使用SHOW语句找出在服务器上当前存在什么数据库、创建一个数据库MYSQLDATA等等。
这个文档可以作为MySQL数据库操作的快速参考指南,帮助用户在实际工作中进行数据库操作。无论是初学者还是有一定经验的用户,都可以通过这个文档更加方便地理解和使用MySQL数据库。文档中的源码经过精心编写,遵循...
易语言MYSQL操作工具V1.1版.MYSQL操作工具,全SQL语句操作工具,可以让用户快速熟悉SQL语句的使用。