mysql创建,删除,授权用户

本文详细介绍MySQL数据库用户管理操作,包括创建、授权、查看、删除用户及更改密码等关键步骤,适用于初学者和进阶用户。

一、登录数据库:
mysql -u root -p
二、创建用户:
CREATE USER ‘username’@‘host’ IDENTIFIED BY ‘password’;
注释:
username——将要创建的用户名;

host——指定该用户在哪个主机上可以登录,“localhost"指该用户只能在本地登录,不能在另外一台机器上远程登录,如果想远程登录,将"localhost"改为”%",表示在任何一台电脑上都可以登录;也可以指定某台机器可以远程登录;

password——该用户的登录密码,密码可以为空,若为空则该用户可以不需要密码登录服务器。
三、为用户授权:
grant 权限 on 数据库.* to username@登录主机 identified by “password”;
例:grant all privileges on testDB.* to test@localhost identified by ‘1234’;
然后须要运行刷新权限的命令:
flush privileges;

         如果为用户授予部分权限: 
         grant select,update on testDB.* to test@localhost identified by '1234';  //localhost是本地访问,其他地址访问不了,%是所有
         授予一个用户全部数据库的某些权限:
         grant select,delete,update,create,drop on *.* to test@"%" identified by "1234";

四、查看用户的授权:
进入到mysql库中 use mysql
SHOW GRANTS FOR ‘username’@‘host’
查看所有用户:
select user,host,password from mysql.user;
五、删除用户:
Delete FROM user Where User=‘test’ and Host=‘localhost’;
然后刷新权限
? drop
???drop user XXX;删除已存在的用户,默认删除的是’XXX’@’%‘这个用户,如果还有其他的用户如’XXX’@‘localhost’等,不会一起被删除。如果要删除’XXX’@‘localhost’,使用drop删除时需要加上host即drop user ‘XXX’@‘localhost’。
??? delete
???delete from user where user=‘XXX’ and host=‘localhost’;其中XXX为用户名,localhost为主机名。
??? 区别
??? drop不仅会将user表中的数据删除,还会删除其他权限表的内容。而delete只删除user表中的内容,所以使用delete删除用户后需要执行FLUSH PRIVILEGES;刷新权限,否则下次使用create语句创建用户时会报错。

  删除不限制ip登录的root(host为空的root用户-任何ip都能登录)
  use mysql;Delete FROM user Where User='root' and Host=' ';  刷新flush privileges;

六、改动指定用户密码:
使用root登录:
mysql -u root -p
运行命令:
update mysql.user set password=password(‘新密码’) where User=“test” and Host=“localhost”;
刷新权限:
flush privileges;
七、撤销权限:
revoke 跟 grant 的语法差不多,只需要把关键字 “to” 换成 “from” 即可:

  mysql>grant all on *.* to dba@localhost;

  mysql>revoke all on *.* from dba@localhost;
  注意:?grant, revoke?用户权限后,该用户只有重新连接?MySQL?数据库,权限才能生效。
    如果想让授权的用户,也可以将这些权限?grant?给其他用户,需要选项 "grant option"
    grant select on testdb.* to dba@localhost with grant option;这个一般用不到。

mysql授权表共有5个表:user、db、host、tables_priv和columns_priv。

授权表的内容有如下用途:
user表
user表列出可以连接服务器的用户及其口令,并且它指定他们有哪种全局(超级用户)权限。在user表启用的任何权限均是全局权限,并适用于所有数据库。例如,如果你启用了DELETE权限,在这里列出的用户可以从任何表中删除记录,所以在你这样做之前要认真考虑。

db表
db表列出数据库,而用户有权限访问它们。在这里指定的权限适用于一个数据库中的所有表。

host表
host表与db表结合使用在一个较好层次上控制特定主机对数据库的访问权限,这可能比单独使用db好些。这个表不受GRANT和REVOKE语句的影响,所以,你可能发觉你根本不是用它。

tables_priv表
tables_priv表指定表级权限,在这里指定的一个权限适用于一个表的所有列。

columns_priv表
columns_priv表指定列级权限。这里指定的权限适用于一个表的特定列

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值