mysql建用户、授权、删除用户、修改密码、回收权限

本文详细介绍了MySQL中创建、删除、修改用户,创建、删除数据库,以及如何通过多种方法修改root密码的过程。此外,文章还阐述了如何对用户进行授权,包括使用GRANT语句设置权限的步骤及实例,帮助开发者更好地理解和掌握MySQL权限管理。
1.创建用户 
insert into mysql.user(Host,User,Password,ssl_cipher,x509_issuer,x509_subject) values("localhost","hello",password("Test"),"","",""); 
刷新权限 
flush privileges; 
创建数据库 
create database test; 
给数据库赋予权限 
grant all privileges on test.* to hello  @localhost  identified by 'Test'; 
flush privileges; 
2.删除用户 
delete from user whrer User="hello" and Host="localhost"; 
删除数据库 
drop database test; 

3.修改指定用户的密码 
mysql -u root -p 
密码 

update mysql.user set password=password('新密码') where User="hello" and Host="localhost"; 

flush privileges;


mysql> revoke select on *.* from  kj@"%";
Query OK, 0 rows affected (0.10 sec)



整理了以下四种在MySQL中修改root密码的方法,可能对大家有所帮助!

方法1: 用SET PASSWORD命令

  mysql -u root

  mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');

方法2:用mysqladmin

  mysqladmin -u root password "newpass"

  如果root已经设置过密码,采用如下方法

  mysqladmin -u root password oldpass "newpass"

方法3: 用UPDATE直接编辑user表

  mysql -u root

  mysql> use mysql;

  mysql> UPDATE user SET Password = PASSWORD('newpass') WHERE user = 'root';

  mysql> FLUSH PRIVILEGES;

在丢失root密码的时候,可以这样

  mysqld_safe --skip-grant-tables&

  mysql -u root mysql

  mysql> UPDATE user SET password=PASSWORD("new password") WHERE user='root';

  mysql> FLUSH PRIVILEGES;




用户授权:


MySQL用户授权 
GRANT 语句的语法如下:
     GRANT privileges (columns)
           ON what
           TO user IDENTIFIEDBY "password"
           WITH GRANT OPTION

对用户授权
mysql>grant rights on database.* to user@host identified by "pass";

例1:
   增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。
    grant select,insert,update,delete on *.* to test1@"%" Identified by "abc";

       ON 子句中*.* 说明符的意思是“所有数据库,所有的表”


例2:
   增加一个用户test2密码为abc, 让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作。
grant select,insert,update,delete on mydb.* to test2@localhost identified by "abc";


例子3
增加一个用户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';

==============================================
权限信息用user、db、host、tables_priv和columns_priv表被存储在mysql数据库中(即在名为mysql的数据库中)。


权限            列                      Context
select           Select_priv          表                                      
insert           Insert_priv          表 
update         Update_priv       表 
delete           Delete_priv         表 
index            Index_priv         表 
alter             Alter_priv            表 
create          Create_priv          数据库、表或索引 
drop             Drop_priv            数据库或表 
grant            Grant_priv           数据库或表 
references    References_priv    数据库或表 
reload           Reload_priv          服务器管理 
shutdown     Shutdown_priv        服务器管理 
process          Process_priv           服务器管理 
file                  File_priv                 在服务器上的文件存取

1.
select、insert、update和delete权限        
允许你在一个数据库现有的表上实施操作,是基本权限

2.
alter权限允许你使用ALTER TABLE

3.
create和drop权限允许你创建新的数据库和表,或抛弃(删除)现存的数据库和表
        如果你将mysql数据库的drop权限授予一个用户,该用户能抛弃存储了MySQL存取权限的数据库!

4.
grant权限允许你把你自己拥有的那些权限授给其他的用户。


你不能明显地指定一个给定用户应该被拒绝存取。即,你不能明显地匹配一个用户并且然后拒绝连接。 
你不能指定一个用户有权创建立或抛弃一个数据库中的表,也不能创建或抛弃数据库本身。


可以同时列出许多被授予的单个权限。

例如,如果想让用户能读取和修改已有表的内容,但又不允许创建新表或删除表,可按如下授权:
     GRANT SELECT,INSERT,DELETE,UPDATE   ON samp_db.*    TO user@%
         IDENTIFIEDBY "pass"



评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值