mysql怎样增加用户
发布时间:2025-05-25 13:31:45 发布人:远客网络
一、mysql怎样增加用户
格式:grant select on数据库.* to用户名@登录主机 identified by"密码"
例1、增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MYSQL,然后键入以下命令:
mysql>grant select,insert,update,delete on*.* to test1@"%" Identified by"abc";
但例1增加的用户是十分危险的,你想如某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登录你的mysql数据库并对你的数据可以为所欲为了,解决办法见例2。
例2、增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作(localhost指本地主机,即MYSQL数据库所在的那台主机),这样用户即使用知道test2的密码,他也无法从internet上直接访问数据库,只能通过MYSQL主机上的web页来访问了。
mysql>grant select,insert,update,delete on mydb.* to test2@localhost identified by"abc";
如果你不想test2有密码,可以再打一个命令将密码消掉。
mysql>grant select,insert,update,delete on mydb.* to test2@localhost identified by"";
另外,也可以通过直接往user表中插入新纪录的方式来实现。
二、怎样添加数据库用户mysql数据库
1、首先以root身份登录到MySQL服务器中。
2、当验证提示出现的时候,输入MySQL的root帐号的密码。
3、使用如下命令创建一个用户名和密码分别为"myuser"和"mypassword"的用户。
4、mysql> CREATE USER'myuser'@'localhost' IDENTIFIED BY'mypassword';
5、一旦用户被创建后,包括加密的密码、权限和资源限制在内的所有帐号细节都会被存储在一个名为user的表中,这个表则存在于mysql这个特殊的数据库里。
6、运行下列命令,验证帐号是否创建成功
7、mysql> SELECT host, user, password FROM mysql.user WHERE user='myuser';
8、一个新建的MySQL用户没有任何访问权限,这就意味着你不能在MySQL数据库中进行任何操作。你得赋予用户必要的权限。以下是一些可用的权限:
9、运行以下命令赋予"myuser"用户特定权限。
10、mysql> GRANT<privileges> ON<database>.<table> TO'myuser'@'localhost';
11、以上命令中,<privileges>代表着用逗号分隔的权限列表。如果你想要将权限赋予任意数据库(或表),那么使用星号(*)来代替数据库(或表)的名字。
12、例如,为所有数据库/表赋予 CREATE和 INSERT权限:
13、mysql> GRANT CREATE, INSERT ON*.* TO'myuser'@'localhost';
14、mysql> SHOW GRANTS FOR'myuser'@'localhost';
15、将全部的权限赋予所有数据库/表:
16、mysql> GRANT ALL ON*.* TO'myuser'@'localhost';
17、你也可以将用户现有的权限删除。使用以下命令废除"myuser"帐号的现有权限:
18、mysql> REVOKE<privileges> ON<database>.<table> FROM'myuser'@'localhost';
19、在MySQL中,你可以为单独的用户设置MySQL的资源使用限制。可用的资源限制如下:
20、MAX_QUERIES_PER_HOUR:允许的每小时最大请求数量
21、MAX_UPDATES_PER_HOUR:允许的每小时最大更新数量
22、MAX_CONNECTIONS_PER_HOUR:允许的每小时最大连接(LCTT译注:其与 MySQL全局变量: max_user_connections共同决定用户到数据库的同时连接数量)数量
23、MAX_USER_CONNECTIONS:对服务器的同时连接量
24、使用以下命令为"myuser"帐号增加一个资源限制:
25、mysql> GRANT USAGE ON<database>.<table> TO'myuser'@'localhost' WITH<resource-limits>;
26、在<resource-limits>中你可以指定多个使用空格分隔开的资源限制。
27、例如,增加 MAXQUERIESPERHOUR和 MAXCONNECTIONSPERHOUR资源限制:
28、mysql> GRANT USAGE ON*.* TO'myuser'@'localhost' WITH MAX_QUERIES_PER_HOUR 30 MAX_CONNECTIONS_PER_HOUR 6;
29、mysql> SHOW GRANTS FOR'myuser'@'localhost;
30、创建和设置一个MySQL用户最后的一个重要步骤:
31、如此一来更改便生效了。现在MySQL用户帐号就可以使用了。
三、MySQL数据库中使用Grant语句增添新用户
1、下面的例子显示如何使用MySQL客户安装新用户这些例子假定权限已缺省被安装这意味着为了改变你必须在MySQL正在运行同一台机器上你必须作为MySQL root用户连接并且root用户必须对MySQL数据库有insert权限和reload管理权限另外如果你改变了root用户口令你必须如下的MySQL命令指定它
2、你可以通过发出GRANT语句增加新用户
3、 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;
4、 monty可以从任何地方连接服务器的一个完全的超级用户但是必须使用一个口令( something做这个注意我们必须对 monty@localhost和monty@%发出GRANT语句如果我们增加localhost条目对localhost的匿名用户条目在我们从本地主机连接接时由mysql_install_db创建的条目将优先考虑因为它有更特定的Host字段值所以以user表排列顺序看更早到来
5、 admin可以从localhost没有一个口令进行连接并且被授予reload和process管理权限的用户这允许用户执行mysqladmin reload mysqladmin refresh和mysqladmin flush*命令还有mysqladmin processlist没有授予数据库有关的权限他们能在以后通过发出另一个GRANT语句授权
6、 dummy可以不用一个口令连接的一个用户但是只能从本地主机全局权限被设置为 N USAGE权限类型允许你无需权限就可设置一个用户它假定你将在以后授予数据库相关的权限
7、你也可以直接通过发出INSERT语句增加同样的用户存取信息然后告诉服务器再次装入授权表
8、 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;
9、取决于你的MySQL版本对上述你可能必须使用一个不同数目 Y值(在以前的版本有更少的权限列)对admin用户只用在开始的版本具有的更加可读的INSERT扩充的语法
10、注意为了设置一个超级用户你只需创造一个user表条目其权限字段设为 Y不需要db或host表的条目
11、在user表中的权限列不是由最后一个INSERT语句明确设置的(对dummy用户)因此那些列被赋予缺省值 N这是GRANT USAGE做的同样的事情
12、下列例子增加一个用户custom他能从主机localhost server domain和whitehouse gov连接他只想要从 localhost存取bankaccount数据库从whitehouse gov存取expenses数据库和从所有台主机存取customer数据库他想要从所有台主机上使用口令stupid
13、为了使用GRANT语句设置个用户的权限运行这些命令
14、 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;
15、通过直接修改授权表设置用户权限运行这些命令(注意在结束时FLUSH PRIVILEGES)