程序中mysql添加用户_MySQL添加用户的两种方法
发布日期:2021-06-24 10:18:58 浏览次数:3 分类:技术文章

本文共 4118 字,大约阅读时间需要 13 分钟。

文章开头,我就开门见山,直接为大家介绍在MYSQL 中添加用户 的方法,即 有2 个不同的方法增加用户:通过使用GRANT 语句或通过直接操作MySQL 授权表;比较好的方法是使用GRANT 语句,因为他们是更简明并且好像错误少 些。

下面的例子显示出如何使用MySQL 客户安装新用户。这些例子假定权限已缺省被安装。这意味着为了改变,你必须在MySQL 正在运行同一台机器上, 你必须作为MySQL root 用户连接,并且root 用户必须对MySQL 数据库有insert 权限和reload 管理权限。另外,如果你改变了root 用户口令,你必须如下 的MySQL 命令指定它。

你可以通过发出GRANT 语句增加新用户:

shell> mysql --user=root mysql

mysql> GRANT ALL PRIVILEGES ON *.* TO monty@localhost

IDENTIFIED BY 'something' WITH GRANT OPTION;

mysql> GRANT ALL PRIVILEGES ON *.* TO monty@"%"

IDENTIFIED BY 'something' WITH GRANT OPTION;

mysql> GRANT RELOAD,PROCESS ON *.* TO admin@localhost;

mysql> GRANT USAGE ON *.* TO dummy@localhost;

这些GRANT 语句安装3 个新用户:

monty :可以从任何地方连接服务器的一个完全的超级用户,但是必须使用一个口令('something' 做这个。注意,我们必须对monty@localhost 和monty@"%" 发出GRANT 语句。如果我们增加localhost 条目,对localhost 的匿名用户条目在我 们从本地主机连接接时由mysql_install_db 创建的条目将优先考虑,因为它有更特定的Host 字段值,所以以user 表排列顺序看更早到来。

admin :可以从localhost 没有一个口令进行连接并且被授予reload 和process 管理权限的用户。这允许用户执行mysqladmin reload 、mysqladmin refresh 和mysqladmin flush-* 命令,还有mysqladmin processlist 。没有授予数据库有关的权限。他们能在以后通过发出另一个GRANT 语句授权。

dummy :可以不用一个口令连接的一个用户,但是只能从本地主机。全局权限被设置为'N'--USAGE 权限类型允许你无需权限就可设置一个用 户。它假定你将在以后授予数据库相关的权限。

你也可以直接通过发出INSERT 语句增加同样的用户存取信息,然后告诉服务器再次装入授权表:

shell> mysql --user=root mysql

mysql> INSERT INTO user VALUES('localhost','monty',PASSWORD('something'),

'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y')

mysql> INSERT INTO user VALUES('%','monty',PASSWORD('something'),

'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;

取决于你的MySQL 版本,对上述,你可能必须使用一个不同数目'Y' 值( 在3.22.11 以前的版本有更少的权限列) 。对admin 用户,只用在3.22.11 开始的版本具有的更加可读的INSERT 扩充的语法。

注意,为了设置一个超级用户,你只需创造一个user 表条目,其权限字段设为'Y' 。不需要db 或host 表的条目。

在user 表中的权限列不是由最后一个INSERT 语句明确设置的( 对dummy 用户) ,因此那些列被赋予缺省值'N' 。这是GRANT USAGE 做的同样的事情。

下列例子增加一个用户custom ,他能从主机localhost 、server.domain 和whitehouse.gov 连接。他只想要从localhost 存取bankaccount 数据库, 从whitehouse.gov 存取expenses 数据库和从所有3 台主机存取customer 数据库。他想要从所有3 台主机上使用口令stupid 。

为了使用GRANT 语句设置个用户的权限,运行这些命令:

shell> mysql --user=root

mysql mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP

ON bankaccount.*

TO custom@localhost

IDENTIFIED BY 'stupid';

mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP

ON expenses.*

TO custom@whitehouse.gov

IDENTIFIED BY 'stupid';

mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP

ON customer.*

TO custom@'%'

IDENTIFIED BY 'stupid';

通过直接修改授权表设置用户权限,运行这些命令( 注意,在结束时FLUSH PRIVILEGES) :

shell> mysql --user=root

mysql mysql> INSERT INTO user (Host,User,Password)

VALUES('localhost','custom',PASSWORD('stupid'));

mysql> INSERT INTO user (Host,User,Password)

VALUES('server.domain','custom',PASSWORD('stupid'));

mysql> INSERT INTO user (Host,User,Password)

VALUES('whitehouse.gov','custom',PASSWORD('stupid'));

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('%','customer','custom','Y','Y','Y','Y','Y','Y');

mysql> FLUSH PRIVILEGES;

头3 个INSERT 语句增加user 表条目,允许用户custom 用给定口令从不同的主机进行连接,但是没有授予任何许可( 所有权限被设置为缺省值'N') 。后3 个INSERT 语句增加db 表条目,授予custom 以bankaccount 、expenses 和customer 数据库权限,但是只能在从正确的主机存取时。通常,在授权表直接被修改时,服 务器必须被告知再次装入他们( 用FLUSH PRIVILEGES) 以便使权限修改生效。 如果你想要给特定的用户从一个给定的域上的任何机器上存取权限,你可以发出一个如下的GRANT 语句:

mysql> GRANT ...

ON *.*

TO myusername@"%.mydomainname.com"

IDENTIFIED BY 'mypassword';

为了通过直接修改授权表做同样的事情,这样做:

mysql> INSERT INTO user VALUES ('%.mydomainname.com', 'myusername',

PASSWORD('mypassword'),...);

mysql> FLUSH PRIVILEGES;

你也可以使用xmysqladmin 、mysql_webadmin 甚至xmysql 在授权表中插入、改变和更新值。你可以在MySQL 的Contrib 目录找到这些实用程序。

通过上文中在MySQL 中添加用户两种方法的学习,相信现在在MySQL 中添加用户的问题大家已经都学会了,很高兴与大家分享这些小经验,希望能够 对大家有所帮助。

转载地址:https://blog.csdn.net/weixin_32050033/article/details/113661424 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:简述mysql安装过程_mysql安装的过程
下一篇:mysql+err+1067_MySQL 5.7 Invalid default value for 'CREATE_TIME'报错的解决方法

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月15日 11时35分15秒